HTML Preparation code:
AخA
 
1
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
x
 
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)));
}
Tests:
  • Array Unique

     
    const { resultArray } = testArr.reduce((result, item) => {
     
      if(!result.resultMap[item]){
        result.resultMap[item] = true;
        result.resultArray.push(item)
      }
      return result;
    }, {resultArray: [], resultMap: {}});
    return resultArray;
  • For Loop

     
    const resultArray = [];
    const resultMap = {};
    for(let item of testArr) {
      if(!resultMap[item]){ 
        resultMap[item] = true;
        resultArray.push(item)
      }
    }
    return resultArray;
  • Array from Set

     
    [...new Set(testArr)]
  • Lodash Uniq

     
    _.uniq(testArr)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Array Unique
    For Loop
    Array from Set
    Lodash Uniq

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15
Safari 15 on Mac OS X 10.15.7
View result in a separate tab
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