Tests:
  • one liner

    AخA
     
    const peopleArray = [
      { id: 123, name: "dave", age: 23 },
      { id: 456, name: "chris", age: 23 },
      { id: 789, name: "bob", age: 23 },
      { id: 101, name: "tom", age: 23 },
      { id: 102, name: "tim", age: 23 }
    ]
    const arrayToObject = (arr, keyField) =>
      Object.assign({}, ...arr.map(item => ({[item[keyField]]: item})))
    const peopleObject = arrayToObject(peopleArray, "id")
  • reduced

     
    const peopleArray = [
      { id: 123, name: "dave", age: 23 },
      { id: 456, name: "chris", age: 23 },
      { id: 789, name: "bob", age: 23 },
      { id: 101, name: "tom", age: 23 },
      { id: 102, name: "tim", age: 23 }
    ]
    const arrayToObject = (array, keyField) =>
       array.reduce((obj, item) => {
         obj[item[keyField]] = item
         return obj
       }, {})
    const peopleObject = arrayToObject(peopleArray, "id")
  • reduced clean

     
    const peopleArray = [
      { id: 123, name: "dave", age: 23 },
      { id: 456, name: "chris", age: 23 },
      { id: 789, name: "bob", age: 23 },
      { id: 101, name: "tom", age: 23 },
      { id: 102, name: "tim", age: 23 }
    ]
    const arrayToObject = (array, keyField) =>
       array.reduce((acc, curr) => ({ [curr[keyField]]: curr, ...acc }), {})
    const peopleObject = arrayToObject(peopleArray, "id")
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    one liner
    reduced
    reduced clean

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:72.0) Gecko/20100101 Firefox/72.0
Firefox 72 on Mac OS X 10.15
View result in a separate tab
Test name Executions per second
one liner 78262.7 Ops/sec
reduced 222775.6 Ops/sec
reduced clean 50012.7 Ops/sec