Merge Objects and Array of Objects Using Spread Operator
by ClarenceDowns
JavaScript
// merging objects
const product = {
name: 'Milk',
packaging: 'Plastic',
price: '5$'
}
const manufacturer = {
name: 'Company Name',
address: 'The Company Address'
}
const productManufacturer = { ...product,
...manufacturer
};
console.log(productManufacturer);
// outputs { name: "Company Name", packaging: "Plastic", price: "5$", address: "The Company Address" }
// merging an array of objects into one
const cities = [{
name: 'Paris',
visited: 'no'
},
{
name: 'Lyon',
visited: 'no'
},
{
name: 'Marseille',
visited: 'yes'
},
{
name: 'Rome',
visited: 'yes'
},
{
name: 'Milan',
visited: 'no'
},
{
name: 'Palermo',
visited: 'yes'
},
{
name: 'Genoa',
visited: 'yes'
},
{
name: 'Berlin',
visited: 'no'
},
{
name: 'Hamburg',
visited: 'yes'
},
{
name: 'New York',
visited: 'yes'
}
];
const result = cities.reduce((accumulator, item) => {
return {
...accumulator,
[item.name]: item.visited
}
}, {});
console.log(result);
/* outputs
Berlin: "no"
Genoa: "yes"
Hamburg: "yes"
Lyon: "no"
Marseille: "yes"
Milan: "no"
New York: "yes"
Palermo: "yes"
Paris: "no"
Rome: "yes"
*/