jQuery.each vs _.each vs for loop (v27)

Revision 27 of this benchmark created by Mark Statkus on


Description

I was interested if the 'len' outside the for loop made a difference, since it seemed to make a huge difference in this test.

Preparation HTML

<script src="//code.jquery.com/jquery-git2.min.js"></script>
<script src="//underscorejs.org/underscore-min.js"></script>
<script src="//rawgithub.com/lodash/lodash/2.4.1/dist/lodash.min.js"></script>
<script>
  var lodash = _.noConflict();
  var array = $('*').get();
</script>

Setup

var $ = window.$;
    var _ = window._;
    var lodash = window.lodash;
    
    var e;
    var array = window.array;

Test runner

Ready to run.

Testing in
TestOps/sec
jQuery.each
$.each(array, function(index, element) {
  e = element;
});
ready
underscore.each
_.each(array, function(element, index, list) {
  e = element;
});
ready
lodash.each
lodash.each(array, function(element, index, list) {
  e = element;
});
ready
for loop
for (var i = 0, len = array.length; i < len; i++) {
  e = array[i];
}
ready
forEach
array.forEach(function(element) {
  e = element; 
});
ready
while1
var i = 0;
while (i++ < array.length) {
  e = array[i];
}
ready
while2
var i = 0, len = array.length;
while (i < len) {
  e = array[i];
  i += 1;
}
ready
while3
while ((element = array.shift()) !== undefined) {
  e = element; 
}
ready
for 2
for (var i = 0; i < array.length; i++) {
  e = array[i];
}
ready
jQuery.each 2
$.each(array, function() {
  e = this;
});
ready
for 3
var i, len = array.length;
for (i = 0; i < len; i += 1) {
  e = array[i];
}
ready

Revisions

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