Run details:
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
Mac OS X 10.15.7
Desktop
one year ago
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
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());