Script Preparation code:
AخA
 
var data = Array.from(Array(10000).keys());
Tests:
  • 1. Assign with forEach

     
    let ret = {}; data.forEach(v => { ret[v] = v + 1; });
  • 2. Object.fromEntries

     
    Object.fromEntries(data.map((v) => [v, v + 1]));
  • 3. reduce (reuse object)

     
    data.reduce((acc, v) => {
      acc[v] = v + 1;
      return acc;
    }, {});
  • 4. reduce (reuse object 2)

     
    data.reduce((acc, v) => (acc[v] = v + 1, acc), {})
  • 5. reduce (temporary object 1)

     
    data.reduce((acc, v) => Object.assign(acc, {[v]: v + 1}), {});
  • 6. reduce (temporary object 2)

     
    data.reduce((acc, v) => ({...acc, [v]: v + 1}), {});
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    1. Assign with forEach
    2. Object.fromEntries
    3. reduce (reuse object)
    4. reduce (reuse object 2)
    5. reduce (temporary object 1)
    6. reduce (temporary object 2)

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (Linux; Android 11; HD1903) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36
Chrome Mobile 95 on Android
View result in a separate tab
Test name Executions per second
1. Assign with forEach 624.7 Ops/sec
2. Object.fromEntries 388.5 Ops/sec
3. reduce (reuse object) 480.7 Ops/sec
4. reduce (reuse object 2) 613.4 Ops/sec
5. reduce (temporary object 1) 11.4 Ops/sec
6. reduce (temporary object 2) 24.8 Ops/sec