HTML Preparation code:
x
 
1
2
<script src='https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js'></script>
Script Preparation code:
 
var array = [];
for (let i = 0; i < 100000; i++) {array.push(~~(Math.random() * 2000))}
Tests:
  • Spread

     
    return [...new Set(array)]
  • use lodash

     
    return _.uniq(array);
  • Array.from

     
    return Array.from( new Set(array) );
  • For

     
    const visited = {};
    const uniques = [];
    const initial = array;
    for(let i=0;i<initial.lenght;i++){
      if(!visited[initial[i]]) {
        visited[initial[i]] = true;
        uniques.push(initial[i]);
      }
    }
    return uniques
  • For memory optimized

     
    const visited = {};
    const uniques = [];
    const initial = array;
    for(let i=0;i<initial.lenght;i++){
      if(!(initial[i] in visited)) {
        visited[initial[i]] = undefined;
        uniques.push(initial[i]);
      }
    }
    return uniques
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Spread
    use lodash
    Array.from
    For
    For memory optimized

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
Chrome 119 on Windows
View result in a separate tab
Test name Executions per second
Spread 535.4 Ops/sec
use lodash 538.8 Ops/sec
Array.from 559.1 Ops/sec
For 15491293.0 Ops/sec
For memory optimized 15547500.0 Ops/sec