Script Preparation code:
AخA
 
var array = [];
for (let i = 0; i < 100000; i++) {
   array.push(Math.floor((Math.random() * 10) + 1));
}
Tests:
  • Using indexOf

     
    array.filter((item, index) => array.indexOf(item) != index);
  • Using lastIndexOf

     
    array.filter((item, index) => array.lastIndexOf(item) != index);
  • Using a Set

     
    [...new Set(array)]
  • Using a Map

     
    const deduped = new Map();
      array.forEach((v) => {
        if (!deduped.has(v)) {
          deduped.set(v, v);
        }
      });
      return Array.from(deduped.values());
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Using indexOf
    Using lastIndexOf
    Using a Set
    Using a Map

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Chrome 114 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Using indexOf 84.1 Ops/sec
Using lastIndexOf 66.8 Ops/sec
Using a Set 571.9 Ops/sec
Using a Map 394.8 Ops/sec