Jquery each vs Underscore each vs For loops (v19)

Revision 19 of this benchmark created on


Description

Test with Underscore directly from UnderscoreJS.org, which delivers version 1.6.0, to see if recent changes in _.each() have sped it up. (The DocumentCloud host is serving version 1.5.0 as of the time of this writing.)

Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script src="http://underscorejs.org/underscore-min.js">
</script>

Setup

var arr = [];
    for (var i = 0; i < 100; i++) {
      arr.push({
        Number: i
      });
    };
    var e = null;
    
    function Named(o, i) {
      e = o;
    };

Test runner

Ready to run.

Testing in
TestOps/sec
Jquery each
$.each(arr, function(i, o) {
  e = o;
});
ready
Underscore each
_.each(arr, function(o, i) {
  e = o;
});
ready
For normal
for (var i = 0, len = arr.length; i < len; i++) {
  e = arr[i];
};
ready
For reversed
for (var l = arr.length; l--;) {
  e = arr[l];
};
ready
Native array forEach
if (arr.forEach) {
  arr.forEach(function(o, i) {
    e = o;
  });
};
ready
Native array forEach with Named function
if (arr.forEach) {
  arr.forEach(Named);
};
ready
for reverse (vers 2)
for (var l = arr.length - 1; l >= 0; l--) {
  e = arr[l];
};
ready
for in
var key;
for (key in arr) {
  e = arr[key];
};
ready

Revisions

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