Ожидаемый вывод в массив невозможен, так как массив не будет поддерживать пару ключ / значение.Вы можете выбрать объект.
Вы можете использовать уменьшить и проверить, содержит ли объект key
по имени категории.Если это так, то добавьте сумму, в противном случае создайте ключ по имени категории и установите его значение на сумму
let arrData = [{
category: "Main Expenses",
amount: 420
},
{
category: "Food",
amount: 50
},
{
category: "Main Expenses",
amount: 4530
},
{
category: "Food",
amount: 4520
},
{
category: "Main Expenses",
amount: 4530
},
{
category: "Food",
amount: 450
},
{
category: "Self Care",
amount: 7540
},
{
category: "Child Care",
amount: 4570
}
]
let newData = arrData.reduce((acc, item) => {
acc[item.category] = acc[item.category] ?
acc[item.category] + item.amount :
item.amount;
return acc;
}, {});
console.log(newData)