Извините, если это дублируется, но я пытаюсь суммировать значения из вывода JSON, я могу суммировать значения из одного свойства, но мне нужно суммировать значения, соответствующие месяцу для каждое свойство, любая помощь приветствуется,
let json =
{
"months":[
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov"
],
"data":{
"label":[
{
"Electricity":[
{
"total_bill":"84.54",
"due_date":"2020-06-30"
},
{
"total_bill":"62.38",
"due_date":"2020-07-30"
}
]
},
{
"Gas":[
{
"total_bill":"133.26",
"due_date":"2020-06-29"
},
{
"total_bill":"120.25",
"due_date":"2020-07-30"
}
]
}
]
}
}
Например, я хочу добавить total_bill для электроэнергии и газа за июнь (2020-06) и просуммировать total_bill за июль (2020-07), пожалуйста игнорировать массив месяцев, он используется только для отображения информации на графике. c.
Изменить:
То, что я пробовал до сих пор:
let labels = [];
//Get labels name, eg. Electriciy, Gas, Water, etc
for(let i = 0; i < json.data.label.length; i++) {
labels.push(Object.keys(json.data.label[i]).toString());
}
//Tried to sum them but only figure out how to sum for the same property
let temp = [];
for (let i = 0; i < json.data.label.length; i++) {
let str = labels[i];
let values = json.data.label[i][str];
let sum = 0;
for (let j = 0; j < values.length; j++) {
sum = sum + Number(values[j].total_bill);
}
temp.push(sum);
}
//Desired output is:
//84.54 + 133.26 and 62.38+120.25
temp = [217.8,182.63];
Большое спасибо за изучение этого и за вашу помощь
L oop edit:
Хорошо, поигравшись с l oop, я смог найти тот которые суммируют значения и возвращают желаемый результат, спасибо
for (let i = 0; i < json.data.label.length; i++) {
let sum = 0;
for (let j = 0; j < json.data.label.length; j++) {
sum = sum + Number(json.data.label[j][labels[j]][i].total_bill);
}
temp.push(sum);
}
console.log(temp); // [217.8, 182.63]