Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Search in array - find vs for loop vs object vs map
Compare different ways to search objects in an array given its id.
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Browser:
Chrome 131
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Find
25.0 Ops/sec
For loop
14.7 Ops/sec
Object
3507.9 Ops/sec
Map
1041.5 Ops/sec
Script Preparation code:
var arr = []; for (let i = 0; i < 10000; i++) { arr.push({id: i, name: `object${i}`}); }
Tests:
Find
for (let i = 0; i < 10000; i+=2) { const val = arr.find(x => x.id === i); if (val.name !== `object${i}`) { throw new Error('wrong found'); } }
For loop
for (let i = 0; i < 10000; i+=2) { for (let j = 0, len = arr.length; j < len; j++) { if (arr[j].id === i) { const val = arr[j]; if (val.name !== `object${i}`) { throw new Error('wrong found'); } break; } } }
Object
const obj = arr.reduce((acc, x) => {acc[x.id] = x; return acc;}, {}); for (let i = 0; i < 10000; i+=2) { const val = obj[i]; if (val.name !== `object${i}`) { throw new Error('wrong found'); } }
Map
const mapping = new Map(arr.map(x => [x.id, x])); for (let i = 0; i < 10000; i+=2) { const val = mapping.get(i); if (val.name !== `object${i}`) { throw new Error('wrong found'); } }