Скажу сразу код работает просто не до конца понимаю.
const inputProducts = [
{
title: 'Phone case',
price: 23,
quantity: 2,
category: 'Accessories',
},
{
title: 'Android phone',
price: 150,
quantity: 1,
category: 'Phones',
},
{
title: 'Headphones',
price: 78,
quantity: 1,
category: 'Accessories',
},
{
title: 'Sport Watch',
price: 55,
quantity: 2,
category: 'Watches',
},
]
const quantitiesByCategories = (products) => {
return products.reduce((qtyByCategories, product) => {
const {category, quantity} = product
qtyByCategories[product.category] = (qtyByCategories[product.category] || 0) + product.quantity
return qtyByCategories
}, [])
}
console.log(quantitiesByCategories(inputProducts))
1) Как вот этот параметр product понял что он будет объектом этого массива inputProducts
2) Почему
[product.category] решило что она возьмет значение этого свойства
category: 'Accessories' и станет ключом нового объекта
3) Как происходит суммирование
quantity за счет этой записи
(qtyByCategories[product.category] || 0) + product.quantity