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/133.0.0.0 Safari/537.36
Browser:
Chrome 133
Operating system:
Windows
Device Platform:
Desktop
Date tested:
11 months ago
Test name
Executions per second
Find
35.1 Ops/sec
For loop
25.6 Ops/sec
Object
6169.6 Ops/sec
Map
1370.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'); } }