lhl 2bdf874dbb create 11 ماه پیش
..
.travis.yml 2bdf874dbb create 11 ماه پیش
README.md 2bdf874dbb create 11 ماه پیش
index.js 2bdf874dbb create 11 ماه پیش
package.json 2bdf874dbb create 11 ماه پیش
test.js 2bdf874dbb create 11 ماه پیش

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