JQuery each vs for loop vs _.each

JavaScript performance comparison

Revision 25 of this test case created

Info

trying i++ vs i+=

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="//underscorejs.org/underscore-min.js"></script>
 

Preparation code output

Test runner

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

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
JQuery
function getArrayMin(array) {
  var min = -1;
  $.each(array, function(idx, val) {
    if (min < 0 && val > 0) {
      min = val;
      return true;
    }
    if (val > 0 && min > val) {
      min = val
      return true;
    }
  });
  return min;
};


getArrayMin([0, 10, 11, 9, 924, 19238, 1248, 8, 0, 0, 2, -1, -5]);
pending…
for
function getArrayMin(array) {
  var min = -1;
  for (var i = 0; i < array.length; i += 1) {
    var val = array[i];
    if (min < 0 && val > 0) {
      min = val;
      continue;
    }
    if (val > 0 && min > val) {
      min = val
      continue;
    }
  }
  return min;
};


getArrayMin([0, 10, 11, 9, 924, 19238, 1248, 8, 0, 0, 2, -1, -5]);
pending…
_.each
function getArrayMin(array) {
  var min = -1;
  _.each(array, function(idx, val) {
    if (min < 0 && val > 0) {
      min = val;
      return true;
    }
    if (val > 0 && min > val) {
      min = val
      return true;
    }
  });
  return min;
};


getArrayMin([0, 10, 11, 9, 924, 19238, 1248, 8, 0, 0, 2, -1, -5]);
pending…
Math.min
var arr = [0, 10, 11, 9, 924, 19238, 1248, 8, 0, 0, 2, -1, -5]
Math.min.apply(Math, arr)
pending…
function getArrayMin(a) {
  var lowest = 0;
  for (var i = 1, length = a.length; i < length; i++) {
    if (a[i] < a[lowest]) lowest = i;
  }
  return lowest;
}
getArrayMin([0, 10, 11, 9, 924, 19238, 1248, 8, 0, 0, 2, -1, -5]);
pending…
for ++ instead of +=
function getArrayMin(array) {
  var min = -1;
  for (var i = 0; i < array.length; i++) {
    var val = array[i];
    if (min < 0 && val > 0) {
      min = val;
      continue;
    }
    if (val > 0 && min > val) {
      min = val
      continue;
    }
  }
  return min;
};


getArrayMin([0, 10, 11, 9, 924, 19238, 1248, 8, 0, 0, 2, -1, -5]);
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. Here’s a list of current revisions for this page:

0 comments

Add a comment