AngularJS/Lodash(underscore) foreach (v21)

Revision 21 of this benchmark created on


Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js">
</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.underscore.min.js">
</script>

Setup

var _ = window._;
    var angular = window.angular;
    var arr = Array(1e4);
    for (var i = 0; i < 1e4; i++) {
      arr[i] = i;
    }
    
    var sum = 0;
    var sumFn = function(i) {
      sum += i;
    };
    
    // simple custom forEach
    function customForEach(arr, fn) {
        var len = arr.length
        for (var i = 0; i < len; i++) {
          fn(arr[i]);
        }
    }

Test runner

Ready to run.

Testing in
TestOps/sec
AngularJS
angular.forEach(arr, sumFn);
ready
Lodash
_.each(arr, sumFn);
ready
Native
arr.forEach(sumFn);
ready
For
for (var i = 0; i < arr.length; i++) {
  sum += arr[i];
}
ready
For+
var al = arr.length;
for (var i = 0; i < al; i++) {
  sum += arr[i];
}
ready
For w/ sumFn
for (var i = 0; i < arr.length; i++) {
  sumFn(arr[i]);
}
ready
For+ w/ sumFn
var al = arr.length;
for (var i = 0; i < al; i++) {
  sumFn(arr[i]);
}
ready
For+ .length
for (var i = 0; i < arr.length; i++) {
  sumFn(arr[i]);
}
ready
custom forEach
customForEach(arr, sumFn)
ready

Revisions

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