Test name | Executions per second |
---|---|
Array Unique | 246.6 Ops/sec |
For Loop | 262.9 Ops/sec |
Array from Set | 196.9 Ops/sec |
Lodash Uniq | 169.6 Ops/sec |
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
var testArr = [];
for (var i = 0; i < 100000; i++) {
testArr.push(String(getRandomInt(1000)));
}
const { resultArray } = testArr.reduce((result, item) => {
if(!result.resultMap[item]){
result.resultMap[item] = true;
result.resultArray.push(item)
}
return result;
}, {resultArray: [], resultMap: {}});
return resultArray;
const resultArray = [];
const resultMap = {};
for(let item of testArr) {
if(!resultMap[item]){
resultMap[item] = true;
resultArray.push(item)
}
}
return resultArray;
[new Set(testArr)]
_.uniq(testArr)