forward for loop vs reverse for loop vs forEach (v2)

Revision 2 of this benchmark created by Aden on


Setup

var list = [], k = 0, length = 1000, handler;
    
    while (k < length) {
      list.push(k++);
    }
    
    handler = function(item) {
      item + 11;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
Forward FOR loop
for (var i = 0, len = list.length; i < len; ++i) {
  handler(list[i]);
}
ready
Reverse FOR loop
for (var i = list.length; i > 0; --i) {
  handler(list[i-1]);
}
ready
forEach loop
list.forEach(handler);
ready
FOR...IN loop
for (var i in list) {
  handler(list[i]);
}
ready
Cool Reverse FOR loop
for (var i = list.length; i--;) {
  handler(list[i]);
}
ready
Cool Reverse FOR loop with unrolling
for (var i = list.length; i;) {
  handler(list[--i]);
}
ready

Revisions

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

  • Revision 2: published by Aden on