Array reduce vs forEach (v2)

Revision 2 of this benchmark created by BrunoLM on


Setup

var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  
  Array.prototype.Aggregate = function(fn) {
      var current
          , length = this.length;
  
      if (length == 0) throw "Reduce of empty array with no initial value";
  
      current = this[0];
  
      for (var i = 1; i < length; ++i)
      {
          current = fn(current, this[i]);
      }
  
      return current;
  };

Teardown



            console.log(total);
        
  

Test runner

Ready to run.

Testing in
TestOps/sec
forEach
var total = 0;
array.forEach(function(val) {
  total += val;
});
ready
reduce
var total = array.reduce(function(prev, curr) {
  return prev + curr;
});
ready
for
var total = 0;

for(var i=0,n=array.length; i<n; ++i)
{
    total += array[i];
}
ready
aggregate
var total = array.Aggregate(function(a,b){ return a + b });
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.