Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Chrome 128
Windows
Desktop
4 months ago
Test name Executions per second
For Loop for item towards beginning 3650346.5 Ops/sec
While Loop for item towards beginning 3673173.5 Ops/sec
indexOf for item towards beginning 3579503.5 Ops/sec
For Loop for item towards end 3188385.2 Ops/sec
While Loop for item towards end 3205034.2 Ops/sec
indexOf for item towards end 3133196.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')