Script Preparation code:
AخA
 
var array = Array.from(Array(10000).keys()).map((i) => ({
    id: i,
    count: i * 100,
}))
Tests:
  • Object.fromEntries(array.map)

     
    Object.fromEntries(array.map(({ id, count }) => [id, count]));
  • Array.reduce (reuse same object)

     
    array.reduce((obj, { id, count }) => {
        obj[id] = count;
        return obj;
    }, {});
  • Array.reduce (use Object.assign)

     
    array.reduce((obj, { id, count }) => Object.assign(obj, { [id]: count }), {});
  • Array.reduce (use destructuring)

     
    array.reduce((obj, { id, count }) => ({ ...obj, [id]: count }), {});
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object.fromEntries(array.map)
    Array.reduce (reuse same object)
    Array.reduce (use Object.assign)
    Array.reduce (use destructuring)

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 months ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Chrome 128 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Object.fromEntries(array.map) 2415.2 Ops/sec
Array.reduce (reuse same object) 17950.7 Ops/sec
Array.reduce (use Object.assign) 238.3 Ops/sec
Array.reduce (use destructuring) 115.4 Ops/sec