htc 7ca38fdcbb 善行少年PC端首次提交(基础版) hai 10 meses
..
.travis.yml 7ca38fdcbb 善行少年PC端首次提交(基础版) hai 10 meses
README.md 7ca38fdcbb 善行少年PC端首次提交(基础版) hai 10 meses
index.js 7ca38fdcbb 善行少年PC端首次提交(基础版) hai 10 meses
package.json 7ca38fdcbb 善行少年PC端首次提交(基础版) hai 10 meses
test.js 7ca38fdcbb 善行少年PC端首次提交(基础版) hai 10 meses

README.md

Build Status

Tiny utility to create unions and de-duplicated lists.

Example:

var uniqs = require('uniqs');

var foo = { foo: 23 };
var list = [3, 2, 2, 1, foo, foo];

uniqs(list);
// => [3, 2, 1, { foo: 23 }]

You can pass multiple lists to create a union:

uniqs([2, 1, 1], [2, 3, 3, 4], [4, 3, 2]);
// => [2, 1, 3, 4]

Passing individual items works too:

uniqs(3, 2, 2, [1, 1, 2]);
// => [3, 2, 1]

Summary

  • Uniqueness is defined based on strict object equality.
  • The lists do not need to be sorted.
  • The resulting array contains the items in the order of their first appearance.

About

This package has been written to accompany utilities like flatten as alternative to full-blown libraries like underscore or lodash.

The implementation is optimized for simplicity rather than performance and looks like this:

module.exports = function uniqs() {
  var list = Array.prototype.concat.apply([], arguments);
  return list.filter(function(item, i) {
    return i == list.indexOf(item);
  });
};

License

MIT