Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Chrome 109
Windows
Desktop
2 years ago
Test name Executions per second
.forEach 1.6 Ops/sec
for..of 1.9 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();
    const newMap = new Map();
    array.forEach((x) => {
      newMap.set(x.a, x.b);
    });
    const foo = [...newMap.entries()];
  • for..of

     
    const array = generateTestArray();
    const newMap = new Map();
    for(const x of array) {
        newMap.set(x.a, x.b);
    }
    const foo = [...newMap.entries()];