Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15
Safari 17
Mac OS X 10.15.7
Desktop
one year ago
Test name Executions per second
Number 1: use for iterator 397949.8 Ops/sec
Number 2: use for-of iterator 10689301.0 Ops/sec
Number 3: use reduce 485417.9 Ops/sec
Number 3: Math.max with spread 4973738.5 Ops/sec
Script Preparation code:
AخA
 
var list = [261,237,169,165,20,351,108,491,480,465,453,306,280,244,210,391,60,419,391,164,303,31,370,359,208,313,383,219,256,192,314,198,337,198,416,157,462,183,309,193,192,262,244,421,45,204,287,426,239,214];
Tests:
  • Number 1: use for iterator

    x
     
    let largest = -1;
    for (let i = 0; i < list.length; i++) {
      if (list[i] > largest) {
        largest = list[i];
      }
    }
  • Number 2: use for-of iterator

     
    let largest = -1;
    for (const item of list) {
      if (item > largest) {
        largest = item;
      }
    }
  • Number 3: use reduce

     
    const largest = list.reduce((a,b) => Math.max(a, b));
  • Number 3: Math.max with spread

     
    const largest = Math.max(...list);