Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6 Safari/605.1.15
Safari 15
Mac OS X 10.15.7
Desktop
2 years ago
Test name Executions per second
For Loop for item towards beginning 13232580.0 Ops/sec
While Loop for item towards beginning 12989944.0 Ops/sec
indexOf for item towards beginning 11929893.0 Ops/sec
For Loop for item towards end 9724483.0 Ops/sec
While Loop for item towards end 9617626.0 Ops/sec
indexOf for item towards end 8032244.0 Ops/sec
Script Preparation code:
x
 
var arr = ['apple', 'banana', 'cherry', 'donuts', 'eggplant', 'french fries', 'goulash', 'hamburger', 'ice cream', 'juice', 'kebab', 'lemonade', 'mango', 'nuts', 'octopus', 'parsley', 'quail egg', 'risotto', 'stew', 'tapas', 'udon', 'vanilla', 'wheat', 'xylotil', 'yogurt', 'zucchinni'];
function forLoop(array, item) {
    for (var i = 0; i < array.length; i++) {
        if (array[i] === item) {
          return i;
        }
    }
    return -1;
}
function whileLoop(array, item) {
    var i = 0;
    while (i < array.length) {
        if (array[i] === item) {
            return i;
        }
        i += 1;
    }
    return -1;
}
function indexOfNative(array, item) {
    return array.indexOf(item);
}
Tests:
  • For Loop for item towards beginning

     
    forLoop(arr, 'donuts')
  • While Loop for item towards beginning

     
    whileLoop(arr, 'donuts')
  • indexOf for item towards beginning

     
    indexOfNative(arr, 'donuts')
  • For Loop for item towards end

     
    forLoop(arr, 'yogurt')
  • While Loop for item towards end

     
    whileLoop(arr, 'yogurt')
  • indexOf for item towards end

     
    indexOfNative(arr, 'yogurt')