Доброго времени суток! Помогите разобраться. Никак не могу получить результат. Знаю, что надо это делать через reduce, но у меня с ним постоянно возникают сложности
Есть массив и объект:
const items = [
{
id: 2,
price: 40000
},
{
id: 3,
price: 40000
},
{
id: 4,
price: 40000
},
{
id: 5,
price: 40000
},
{
id: 2,
price: 40000
},
{
id: 3,
price: 40000
}
]
const obj = {
2: 'first',
3: 'second'
}
Мне нужно на выходе получить следующий результат:
const output = {
first: 80000,
second: 80000,
total: 160000
}
Т.е. пройтись по массиву, взять только по 2 и 3 id , в first записать сумму всех найденных записей с id 2, в second сумму всех найденных с id 3, а в total записать сумму общую по 2 и 3 id
Не понимаю как просуммировать price и еще в объекте откуда-то undefined:
const output = items.reduce((acc, { id, price }) => {
return {
...acc,
[obj[id]]: acc[obj[id]] +=price
};
}, {});