Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15
Safari 17
Mac OS X 10.15.7
Desktop
one year ago
Test name Executions per second
For Loop for item towards beginning 15460727.0 Ops/sec
While Loop for item towards beginning 15175545.0 Ops/sec
indexOf for item towards beginning 16472515.0 Ops/sec
For Loop for item towards end 10886335.0 Ops/sec
While Loop for item towards end 10707172.0 Ops/sec
indexOf for item towards end 15298088.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')