wwa-array-unique

Another implementation of jonschlinkert/array-unique, which is faster on larger arrays

Usage no npm install needed!

<script type="module">
  import wwaArrayUnique from 'https://cdn.skypack.dev/wwa-array-unique';
</script>

README

nodejs-array-unique

Build Status

Another implementation of jonschlinkert/array-unique, which is faster on larger arrays

Install

Install with npm:

npm install --save wwa-array-unique

Usage

const unique = require('wwa-array-unique');

let arr = ['a', 'b', 'c', 'c'];
console.log(unique(arr)) //=> ['a', 'b', 'c']
console.log(arr)         //=> ['a', 'b', 'c']

/* The above modifies the input array. To prevent that: */
const unique = require("array-unique").immutable;

let arr = ['a', 'b', 'c', 'c'];
console.log(unique(arr)) //=> ['a', 'b', 'c']
console.log(arr)         //=> ['a', 'b', 'c', 'c']

Benchmarks

Table values are number of operations per second. Unlike the original version, my implementation of immutable is faster than unique.

NodeJS 6

array-unique (mutable) wwa-array-unique (mutable) array-unique (immutable) wwa-array-unique (immutable)
10 2,764,501 315,991 2,239,566 1,119,888
20 888,532 202,232 726,592 590,641
100 65,662 68,415 53,382 208,231
1,000 67,716 71,174 53,714 202,922
10,000 3,025 26,326 2,519 48,769

NodeJS 8

array-unique (mutable) wwa-array-unique (mutable) array-unique (immutable) wwa-array-unique (immutable)
10 2,013,162 1,569,884 1,616,899 2,259,815
20 1,026,325 887,556 774,410 1,168,428
100 80,493 177,247 58,954 198,410
1,000 76,875 165,295 58,541 192,993
10,000 3,760 36,623 2,866 46,911

NodeJS 11

array-unique (mutable) wwa-array-unique (mutable) array-unique (immutable) wwa-array-unique (immutable)
10 7,346,026 1,902,676 5,013,364 4,984,386
20 1,230,241 996,985 1,132,996 1,595,666
100 60,376 189,206 59,443 222,805
1,000 56,450 208,546 56,999 240,402
10,000 2,830 38,446 2,726 49,699