Сложить одинаковые объекты js
//Приходит массив объектов
let numbers = [
{id: 9, category: "Зарплата", type: 'income', amount: 5000, date: '2023-10-20', comment: 'Оклад'},
{id: 10, category: "Подработка", type: 'income', amount: 500, date: '2023-10-14', comment: 'Фриланс'},
{id: 12, category: "Подработка", type: 'income', amount: 100, date: '2023-10-13', comment: 'Hello'},
{id: 8, category: "Зарплата", type: 'income', amount: 1000, date: '2023-10-11', comment: 'Аванс'}
];
//На выходе должно быть так
let numbers = [
{id: 9, category: "Зарплата", type: 'income', amount: 6000, date: '2023-10-20', comment: 'Оклад'},
{id: 10, category: "Подработка", type: 'income', amount: 600, date: '2023-10-14', comment: 'Фриланс'},
];
Запутался уже совсем, спасите, нужно сложить и убрать повторяющиеся объекты
Ответы (1 шт):
Автор решения: Андрей Наговицын
→ Ссылка
Решилось
const result = numbers.reduce((acc, curr) => {
const found = acc.find(item => item.category === curr.category);
if (found) {
found.amount += curr.amount;
} else {
acc.push({...curr});
}
return acc;
}, []);
console.log(result)