Script Preparation code:
x
 
var data = [];
for (var iterator = 0; iterator < 1000; iterator++) {
    data.push({id: iterator, name: 'Iteration ' + iterator});
}
Tests:
  • Reduce

     
    var flattened = data.reduce((entities, item) => {
        return {
          ...entities,
          [item.id]: item
        }
    }, {});
    console.log(flattened);
  • Foreach

     
    var flattened = {};
    data.forEach((item) => {
      flattened[item.id] = item;
    });
    console.log(flattened);
  • Reduce but without destructuring

     
    var flattened = data.reduce((entities, item) => {
        entities[item.id] = item;
        return entities;
    }, {});
    console.log(flattened);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Reduce
    Foreach
    Reduce but without destructuring

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36
Chrome 93 on Linux
View result in a separate tab
Test name Executions per second
Reduce 2775.0 Ops/sec
Foreach 33512.1 Ops/sec
Reduce but without destructuring 34839.9 Ops/sec