custom array forEach (v34)

Revision 34 of this benchmark created by Al on


Preparation HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js"></script>

Setup

var array=["foo","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","bar","baz","lorem","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham","ipsum","lol","cat","ham"];
  
  var func=function(){2+2};
  
  Array.prototype.forEach2=function(a){
    var l=this.length;
    for(var i=0;i<l;i++)a(this[i],i)
  }
  
  Array.prototype.map2=function(a){
  var l=this.length;
  var array=new Array(l),i=0;
  for(;i<l;i++){array[i]=a(this[i],i)}
  return array;
  }
  
  Array.prototype.forEach3=function(a){
    var i=this.length;
    while(i--) a(this[i],i);
  }
  
  Array.prototype.forEach4=function(a){
    var i = 0, len = this.length;
    while (i < len) {
      a(this[i],i);
      i++;
    }
  }
  
  Array.prototype.forEach5=function(a){
    for (var i = 0, len = this.length; i < len; i++) {
      a(this[i],i);
    }
  }
  
  Array.prototype.forEach6=function(a){
    for (var i = this.length; i > 0; i--) {
      a(this[i],i);
    }
  }

Test runner

Ready to run.

Testing in
TestOps/sec
for
for(var i=array.length;i--;) {
  func();
}
ready
foreach
array.forEach(func)
ready
custom foreach
array.forEach2(func)
ready
map
array.map(func)
ready
custom map
array.map2(func)
ready
lodash each
_.each(array, func)
ready
while i--
array.forEach3(func)
ready
while i < this.lenght
array.forEach4(func)
ready
for with length cached
array.forEach5(func)
ready
for i > 0
array.forEach6(func)
ready

Revisions

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