Test name | Executions per second |
---|---|
Lodash | 147.5 Ops/sec |
Set & Filter | 222.3 Ops/sec |
map | 153.0 Ops/sec |
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
var arr1 = [];
for(let i = 0; i < 100000; i++) {
arr1.push({"index": i});
}
var arr2 = [];
for(let i = 49000; i >= 0; i--) {
arr2.push(arr1[i*2]);
}
const notInArr = _.difference(arr2, arr1)
const arr2Set = new Set(arr2);
const notInArr2 = arr1.filter(value => !arr2Set.has(value));
const arr2Map = new Map(arr2.map((e2) => ([e2.index, e2])));
const notInArr2 = arr1.filter(value => !arr2Map.has(value));