On gists
Converting an Array of Objects to an Object
JavaScript
ES 6
convert.js
Raw
#
// https://medium.com/@Evelyn.Taylor/rewriting-javascript-converting-an-array-of-objects-to-an-object-7aeaed399017
const people = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
=>
{
1: 'Alice',
2: 'Bob',
3: 'Charlie'
}
// traditional
const peopleObject = {};
for (const person of people) {
peopleObject[person.id] = person.name;
}
console.log(peopleObject); // {1: 'Alice', 2: 'Bob', 3: 'Charlie'}
// better
const peopleObject = people.reduce((acc, person) => {
acc[person.id] = person.name;
return acc;
}, {});
console.log(peopleObject); // {1: 'Alice', 2: 'Bob', 3: 'Charlie'}
// maybe better, maybe less readable, shorter
const peopleObject = people.reduce((acc, { id, name }) => ({ ...acc, [id]: name }), {});