Package Exports
- uniqs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (uniqs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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