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 doRedeuce(pArray) {
    return pArray.reduce(function(accum, curr) { return accum += curr; });
}
function doRedeuceArrowFunc(pArray) {
    return pArray.reduce((accum, curr) => accum += curr);
}
function doLoop(pArray) {
    var accum = 0;
    const l = pArray.length
    for(var intCtr=0; intCtr<l; intCtr++) {
        accum += pArray[intCtr];
    }
    return accum;
}
function doForEach(pArray) {
    var accum = 0;
    pArray.forEach((item) => {
        accum += item;
    });
}
Tests:
  • Reduce arrow

     
    var reduceResult=0;
    redeuceResult = doRedeuceArrowFunc(arrRandom);
  • ForLoop

     
    var loopResult=0;
    loopResult = doLoop(arrRandom);
  • ForEach

     
    var forEachResult=0
    forEachResult = doForEach(arrRandom)
  • Reduce

     
    var reduceResult=0;
    redeuceResult = doRedeuce(arrRandom);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Reduce arrow
    ForLoop
    ForEach
    Reduce

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 6 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Chrome 69 on Windows
View result in a separate tab
Test name Executions per second
Reduce arrow 407708.8 Ops/sec
ForLoop 730333.2 Ops/sec
ForEach 441646.2 Ops/sec
Reduce 340096.0 Ops/sec