Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
Chrome 111
Mac OS X 10.15.7
Desktop
2 years ago
Test name Executions per second
.forEach 11.9 Ops/sec
for..of 15.1 Ops/sec
.map 9.0 Ops/sec
Script Preparation code:
AخA
 
function generateTestArray() {
  const result = [];
  for (let i = 0; i < 1000000; ++i) {
    result.push({
      a: i,
      b: i / 2,
      r: 0,
    });
  }
  return result;
}
Tests:
  • .forEach

     
    const array = generateTestArray();
    array.forEach((x) => {
       x.r = x.a + x.b;
    });
  • for..of

     
    const array = generateTestArray();
    for(const x of array) {
        x.r = x.a + x.b;
    }
  • .map

     
    const array = generateTestArray();
    array.map(x => x.a + x.b)