JS: For loop vs Array.indexOf (v159)

Revision 159 of this benchmark created by Justin Warkentin on


Setup

var ar = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    
    function fastIndexOf(arr, search) {
      for(var i = 0; i < arr.length; i++) {
        if(arr[i] === search) {
          return i;
        }
      }
    
      return -1;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
For loop
var a = undefined;

for (var i = 0, l = ar.length; i < l; i++) {
 if (i in ar && ar[i] === 5) {
   a = i;
   break;
 }
}
ready
indexOf
var a = ar.indexOf(5);
ready
While Loop
// NOTE: This searches back to front
var it = ar.length;
while (--it) {
  if (ar[it] === 5) {
    break;
  }
}
ready
For Loop without 'in'
for(var i = 0; i < ar.length; i++) {
  if(ar[i] === 5) {
    break;
  }
}
ready
Function wrap penalty of "For Loop without 'in'"
var a = fastIndexOf(ar, 5);
ready

Revisions

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