Run details:
Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1
Mobile Safari 15
iOS 15.0
Mobile
3 years ago
Test name Executions per second
reduce 744120.7 Ops/sec
for loop 1359992.8 Ops/sec
forEach 318292.7 Ops/sec
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 doLoop(pArray) {
    var accum = 0;
    for(var intCtr=0; intCtr<pArray.length; intCtr++) {
        accum += pArray[intCtr];
    }
    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 = doForEach(arrRandom)