for loop vs $.each (v11)

Revision 11 of this benchmark created on


Description

<div id="id_1"> <span>foo0</span> <span>foo1</span> <span>foo2</span> <span>foo3</span> <span>foo4</span> <span>foo5</span> <span>foo6</span> <span>foo7</span> <span>foo8</span> </div>

Preparation HTML

<div id="id_1">
  <span>
    foo0
  </span>
  <span>
    foo1
  </span>
  <span>
    foo2
  </span>
  <span>
    foo3
  </span>
  <span>
    foo4
  </span>
  <span>
    foo5
  </span>
  <span>
    foo6
  </span>
  <span>
    foo7
  </span>
  <span>
    foo8
  </span>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script>
  var $set = jQuery('#id_1').children();

  function process(i, e) {};

  function myeach(arr, func) {
    for (var i = 0, len = arr.length; i < len; i++) {
      func(i, arr[i]);
    }
  }

  jQuery.fn.extend({
    // Inspired by Ben Alman's each2 jQuery plugin. Slightly faster.
    each$: function(fn) {
      var $elem = jQuery([1]),
          length = this.length;
      for (var i = 0; i < length; i++) {
        if (fn.call($elem.context = $elem[0] = this[i], i, $elem) === false) {
          break;
        }
      }
      return this;
    }
  });
  4
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
for
for (var i = 0, len = $set.length; i < len; i++)
process(i, $set[i]);
ready
$.each
$set.each(function(i, e) {});
ready
my each
myeach($set, function(i, l) {});
ready
$.each$
$set.each$(function(i, e) {});
ready

Revisions

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