jQuery each vs JS forEach

JavaScript performance comparison

Revision 35 of this test case created by

Preparation code

<script src="https://code.jquery.com/jquery-2.1.4.min.js">
</script>
<script>
  // Setup collection
  var collection = [];
  for (var i = 0; i < 200; i++) {
    collection.push({
      index: i,
      data: 'Index element ' + i
    });
  }
</script>
      
<script>
Benchmark.prototype.setup = function() {
  function _jEach(arr, callb){
    for(var i=0, l=arr.length; i<l; i++){
      callb.call(undefined, arr[i], i);
    }
  }
  
  function _jEach2(arr, callb){
    for(var i=0, l=arr.length; i<l; i++){
      callb(arr[i], i);
    }
  }
  
  function _jEach3(arr, callb){
    var i = arr.length;
    while(i--){
      callb.call(undefined, arr[i], i);
    }
  }

};
</script>

Preparation code output

<script> // Setup collection var collection = []; for (var i = 0; i < 200; i++) { collection.push({ index: i, data: 'Index element ' + i }); } </script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
jQuery
$.each(collection, function(index, element) {
  console.log(index, "SSSSSSSSSSSSSSSSSSSSSSSSSS");
});
pending…
JS forEach()
collection.forEach(function(element, index) {
  console.log(index, "SSSSSSSSSSSSSSSSSSSSSSSSSS");
});
pending…
JS for(var x in collection)
for (var index in collection) {
  if (collection.hasOwnProperty(index)) {
    console.log(index, "SSSSSSSSSSSSSSSSSSSSSSSSSS");
  }
}
pending…
Js for
for (var i = 0, len = collection.length; i < len; i++) {
  console.log(i, "SSSSSSSSSSSSSSSSSSSSSSSSSS");
}
pending…
JS while
var len = collection.length - 1;
while (len >= 0) {
  console.log(len, "SSSSSSSSSSSSSSSSSSSSSSSSSS");
  len--;
}
pending…
JS While 2
var len = collection.length;
while (len--) {
  console.log(len, "SSSSSSSSSSSSSSSSSSSSSSSSSS");
}
pending…
_jEach
_jEach(collection,function(element, index) {
  console.log(index, "SSSSSSSSSSSSSSSSSSSSSSSSSS");
});
pending…
_jEach2
_jEach(collection,function(element, index) {
  console.log(index, "SSSSSSSSSSSSSSSSSSSSSSSSSS");
});
pending…
_jEach
_jEach3(collection,function(element, index) {
  console.log(index, "SSSSSSSSSSSSSSSSSSSSSSSSSS");
});
pending…

Compare results of other browsers

Revisions

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

0 Comments