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 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Browser:
Chrome 130
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Benchmark engine:
Benchmark.js
indexOf
7.3M/s
for
2.3M/s
while
2.2M/s
indexed
1.6M/s
findIndex
1.1M/s
View exact numbers
Test name
Executions per second
✓
indexOf
7,275,522 Ops/sec
for
2,332,883 Ops/sec
while
2,201,601 Ops/sec
indexed
1,620,155 Ops/sec
findIndex
1,111,516 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];