HTML Preparation code:
x
 
1
2
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
 
var arr1 = [];
for(let i = 0; i < 10000; i++) {
  arr1.push('' + i);
}
var arr2 = [];
for(let i = 490; i >= 0; i--) {
  arr2.push('' + i);
}
Tests:
  • Lodash

     
    const notInArr1 = _.difference(arr2, arr1)
    const notInArr2 = _.difference(arr1, arr2)
  • Set & Filter

     
    const arr1Set = new Set();
    const arr2Set = new Set();
    arr1.forEach(value => arr1Set.add(value));
    arr2.forEach(value => arr2Set.add(value));
    const notInArr1 = arr2.filter(value => !arr1Set.has(value));
    const notInArr2 = arr1.filter(value => !arr2Set.has(value));
  • Set & Filter (new set)

     
    const arr1Set = new Set([...arr1]);
    const arr2Set = new Set([...arr2]);
    const notInArr1 = arr2.filter(value => !arr1Set.has(value));
    const notInArr2 = arr1.filter(value => !arr2Set.has(value));
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Lodash
    Set & Filter
    Set & Filter (new set)

    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/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Chrome 108 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Lodash 2721.9 Ops/sec
Set & Filter 235.2 Ops/sec
Set & Filter (new set) 157.9 Ops/sec