Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
indexOf vs findIndex vs for vs while vs indexed - 100 items
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
Benchmark engine:
Benchmark.js
indexOf
5.8M/s
while
2.1M/s
for
2.1M/s
indexed
1.2M/s
findIndex
899K/s
View exact numbers
Test name
Executions per second
✓
indexOf
5,753,934 Ops/sec
while
2,143,603 Ops/sec
for
2,088,736 Ops/sec
indexed
1,220,226 Ops/sec
findIndex
899,142 Ops/sec
Script Preparation code:
var exampleItem1 = 'You will never find me!'; var exampleItem2 = 'I am invisible!'; var exampleArray = Array(100).fill('').map((x, i) => x + (i + 1)); var compare1 = x => x === exampleItem1; var compare2 = x => x === exampleItem2;
Tests:
findIndex
exampleArray.findIndex(compare1); exampleArray.findIndex(compare2);
indexOf
exampleArray.indexOf(exampleItem1); exampleArray.indexOf(exampleItem2);
for
let index1 = null; let index2 = null; for (let i = 0, l = exampleArray.length; i < l; i += 1) { if (index1 === null && compare1(exampleArray[i])) { index1 = i; continue; } if (index2 === null && compare2(exampleArray[i])) { index2 = i; continue; } if (index1 !== null && index2 !== null) break; }
while
let index1 = null; let index2 = null; let i = -1, l = exampleArray.length; while (++i < l) { if (index1 === null && compare1(exampleArray[i])) { index1 = i; continue; } if (index2 === null && compare2(exampleArray[i])) { index2 = i; continue; } if (index1 !== null && index2 !== null) break; }
indexed
const indexes = {}; for (let i = 0, l = exampleArray.length; i < l; i += 1) { indexes[exampleArray[i]] = i; } let index1 = indexes[exampleItem1]; let index2 = indexes[exampleItem2];