Skip to content

Instantly share code, notes, and snippets.

@krav4enkodm
Last active August 24, 2022 18:47
Show Gist options
  • Select an option

  • Save krav4enkodm/63142cbe27e0a00a397d522606abafce to your computer and use it in GitHub Desktop.

Select an option

Save krav4enkodm/63142cbe27e0a00a397d522606abafce to your computer and use it in GitHub Desktop.
Array.include vs Set.has
const arr = Array.from({ length: 10000 }, (_, i) => i);
const set = new Set(arr);
function checkArr() {
return arr.filter((item) => arr.includes(item));
}
function checkSet() {
return arr.filter((item) => set.has(item));
}
function checkPerformance(callback) {
const start = performance.now();
callback();
const end = performance.now();
return end - start;
}
const arrResults = [];
const setResults = [];
for (let i = 0; i < 100; i++) {
arrResults.push(checkPerformance(checkArr));
setResults.push(checkPerformance(checkSet));
}
function calcAverage(result) {
return result.reduce((acc, next) => acc + next, 0)/result.length;
}
console.log('arr:', calcAverage(arrResults));
console.log('set:', calcAverage(setResults));
@krav4enkodm
Copy link
Author

krav4enkodm commented Aug 24, 2022

length: 10k

arr: 31.427812070995568
set: 0.2702250306308269

length: 1k

arr: 0.41436250001192093
set: 0.038988359719514844

length: 100

arr: 0.009791249185800552
set: 0.007861280143260955

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment