Script Preparation code:
x
 
//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 doForLoop(pArray) {
    var accum = 0;
    var arrLength = pArray.length;
    for(var intCtr=0; intCtr<arrLength; intCtr++) {
        accum += pArray[intCtr];
    }
    return accum;
}
function doForOfLoop(pArray) {
    var accum = 0;
    for(var value of pArray) {
        accum += value;
    }
    return accum;
}
function doForEach(pArray) {
    var accum = 0;
    pArray.forEach(function(item) {
        accum += item;
    });
}
Tests:
  • Array.reduce

     
    var redeuceResult=0;
    redeuceResult = doRedeuce(arrRandom);
  • for loop

     
    var loopResult=0;
    loopResult = doForLoop(arrRandom);
  • Array.forEach

     
    var forEachResult=0
    forEachResult = doForEach(arrRandom)
  • for of loop

     
    var forOfResult=0
    forOfResult = doForOfLoop(arrRandom)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Array.reduce
    for loop
    Array.forEach
    for of loop

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188
Chrome 115 on Windows
View result in a separate tab
Test name Executions per second
Array.reduce 96538.7 Ops/sec
for loop 757090.4 Ops/sec
Array.forEach 644713.8 Ops/sec
for of loop 588140.9 Ops/sec