У меня есть следующий массив:
var curr = [{"Год": 2019, "Заголовок": "Пример управления активами", "Сумма": 1020000.0, "Бюджет": 0
}, {
"Year": 2019,
"Title": "Monday test 2",
"Sum": 2546658.0,
"Budget":100
}, {
"Year": 2020,
"Title": "Asset Management Sample",
"Sum": 1020000.0,
"Budget":1000
}, {
"Year": 2020,
"Title": "Monday test 2",
"Sum": 3472000.0,
"Budget":100
}, {
"Year": 2021,
"Title": "Asset Management Sample",
"Sum": 1020000.0,
"Budget":100
}, {
"Year": 2021,
"Title": "Monday test 2",
"Sum": 2452000.0,
"Budget":100
}]
Что мне нужно изменить на:
[{
"Year": 2019,
"Asset Management Sample": 1020000.0,
"Monday test": 2546658.0
}, {
"Year": 2020,
"Asset Management Sample": 1020000.0,
"Monday test 2": 3472000.0
}, {
"Year": 2021,
"Asset Management Sample": 1020000.0,
"Monday test 2": 2452000.0
}]
С помощью более ранних постеров я использовал .reduce (слегка измененный снизу), чтобы сгенерировать это:
var res = arr.reduce(function(acc, curr) {
acc[curr.Year] = acc[curr.Year];
acc[curr.Year] = acc[curr.Year] || { Year: curr.Year } ;
acc[curr.Year][curr.Title] = curr.Sum;
return acc;
Мне нужно расширить это, чтобы включить сумму всех значений бюджета для каждого года (должна быть одна стоимость бюджета в год).Я добавил следующую строку перед возвратом:
acc[curr.Year][curr.Budget] = curr[curr.Budget] || { Budget: curr.Budget } ;
Это добавляет отдельные записи для каждого значения бюджета.Как суммировать значения бюджета и возвращать их, не затрагивая другой возвращаемый массив?