Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Array.reduce vs for loop vs Array.forEach vs decrement while
A test summing 1000 random numbers, 1 - 10000
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:141.0) Gecko/20100101 Firefox/141.0
Browser:
Firefox 141
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
for loop
2.4M/s
forEach
1.9M/s
reduce
1.1M/s
decrement while
489K/s
View exact numbers
Test name
Executions per second
✓
for loop
2,392,480 Ops/sec
forEach
1,862,913 Ops/sec
reduce
1,077,420 Ops/sec
decrement while
488,600 Ops/sec
Script Preparation code:
// Create an array of 1000 random intergers between 1 and 10000 var arrRandom = []; for(var intCtr=0; intCtr<1000; intCtr++) { arrRandom.push(Math.floor(Math.random() * Math.floor(10000))); } function reduceCallback(accum, curr) { return accum+curr; } function doRedeuce(pArray) { return pArray.reduce(reduceCallback); } function doLoop(pArray) { var accum = 0; for(var intCtr=0; intCtr<pArray.length; intCtr++) { accum += pArray[intCtr]; } return accum; } function decrWhile(pArray) { var accum = 0; var index = pArray.length; while(index--) { accum += pArray[index]; } return accum; } function doForEach(pArray) { var accum = 0; pArray.forEach(function(item) { accum += item; }); }
Tests:
reduce
var redeuceResult=0; redeuceResult = doRedeuce(arrRandom);
for loop
var loopResult=0; loopResult = doLoop(arrRandom);
forEach
var forEachResult=0 forEachResult = decrWhile(arrRandom)
decrement while
var decrWhileResult=0; decrWhileResult = doForEach(arrRandom)