Angular foreach vs Underscore foreach vs native For Loop vs reverse native for loop (v20)

Revision 20 of this benchmark created on


Description

Angular 1.2.23 stable forEach vs Underscore.js each

Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

 <script src="http://underscorejs.org/underscore-min.js"></script>

Setup

var arr = {};
    var sum = 0;
    for (var i = 0; i < 100000; i++) {
      arr['i' + i] = i;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
angular foreach
angular.forEach(arr, function(val, key) {
  sum += val;
});
ready
underscore foreach
_.each(arr, function(val, key) {
  sum += val;
});
ready
for loop
var keys = Object.keys(arr);
for (var i = 0; i < keys.length; i++) {
  var val = arr[keys[i]];
  sum += val;
};
ready
for loop reverse
var keys = Object.keys(arr);
for (var i = keys.length - 1; i >= 0; i--) {
  var val = arr[keys[i]];
  sum += val;
};
ready
for loop with caching
var keys = Object.keys(arr);
for (var i = 0, len = keys.length; i < len; i++) {
  var val = arr[keys[i]];
  sum += val;
};
ready
for ... in
for (var key in arr) {
  var val = arr[key];
  sum += val;
}
ready

Revisions

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