jQuery each vs JS forEach

JavaScript performance comparison

Revision 6 of this test case created by

Preparation code

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script>
  // Setup collection
  var collection = [];
  for (var i = 0; i < 2000; i++) {
    collection.push({
      index: i,
      data: 'Index element ' + i
    });
  }
</script>
    

Preparation code output

<script> // Setup collection var collection = []; for (var i = 0; i < 2000; 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) {
  if (typeof console !== 'undefined') {
    console.log('jQuery: index', index, 'element', element);
  }
});
pending…
JS forEach()
collection.forEach(function(element, index) {
  if (typeof console !== 'undefined') {
    console.log('JS: index', index, 'element', element);
  }
});
pending…
JS for(var x in collection)
for (var index in collection) {
  if (collection.indexOf(index) !== -1 || collection.hasOwnProperty(index)) {
    console.log('JS: index', index, 'element', collection[index]);
  }
  }
pending…
$.selector each
$(collection).each(function(index, element) {
  if (typeof console !== 'undefined') {
    console.log('jQuery: index', index, 'element', element);
  }
});
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