Test name | Executions per second |
---|---|
Javascript Array.reduce/Array.indexOf | 91058.1 Ops/sec |
Lodash Uniq | 262464.8 Ops/sec |
function unique(arr) | 340386.9 Ops/sec |
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.5/lodash.min.js"></script>
var itemsCount = 1e2;
var items = Array.from({ length: itemsCount }, () => Math.floor(Math.random() * itemsCount));
items.reduce((list, item) => list.indexOf(item) > -1 ? list : [list, item], []);
_.uniq(items)
function unique(arr) {
var hash = {}, result = [];
for ( var i = 0, l = arr.length; i < l; ++i ) {
if ( !hash.hasOwnProperty(arr[i]) ) { //it works with objects! in FF, at least
hash[ arr[i] ] = true;
result.push(arr[i]);
}
}
return result;
}
unique(items)