make-unique
Version:
Creates and makes an array without duplicates. Even with array of objects with a specified matcher.
61 lines (45 loc) • 1.71 kB
Markdown
[](https://travis-ci.org/kaelzhang/node-make-unique)
<!-- optional appveyor tst
[](https://ci.appveyor.com/project/kaelzhang/node-make-unique)
-->
<!-- optional npm version
[](http://badge.fury.io/js/make-unique)
-->
<!-- optional npm downloads
[](https://www.npmjs.org/package/make-unique)
-->
<!-- optional dependency status
[](https://david-dm.org/kaelzhang/node-make-unique)
-->
# make-unique
Creates and makes an array without duplicates. Even with array of objects with a specified matcher.
If no `matcher` specified, it will use [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) if `Set` is available in V8.
## Install
```sh
$ npm install make-unique --save
```
## Usage
```js
let unique = require('make-unique')
unique([1, 2, 3, 1]) // [1, 2, 3]
```
### unique(array, matcher)
- **array** `Array` the input array
- **matcher** `function(a, b)` if `matcher` returns `true`, then it will treat `a` equals to `b`.
Cleans an array of objects with a specified filter to tell `unique` how to determine if two items are the 'same'
```js
unique([
{a: 1},
{a: 2},
{a: 1}
], (a, b) => {
// if `a` and `b` contain the same `.a`, they are the 'same'
return a.a === b.a
})
// [
// {a: 1},
// {a: 2}
// ]
```
## License
MIT