JS: For loop vs Array.indexOf (v232)

Revision 232 of this benchmark created on


Setup

var elementToCheck = 500;
    var ar = [];
    var arrayLength = 1000;
    while( arrayLength-- >= 0) {
       ar.push(arrayLength);
       
    }
    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] === elementToCheck) {
   a = i;
   break;
 }
}
ready
indexOf
var a = ar.indexOf(elementToCheck);
ready
While Loop
// NOTE: This searches back to front
var it = ar.length;
while (--it) {
  if (ar[it] === elementToCheck) {
    break;
  }
}
ready
For Loop without 'in'
for(var i = 0; i < ar.length; i++) {
  if(ar[i] === elementToCheck) {
    break;
  }
}
ready
Function wrap penalty of "For Loop without 'in'"
var a = fastIndexOf(ar, elementToCheck);
ready

Revisions

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