У меня есть этот многомерный массив, и мне нужно, чтобы объединить поля, которые равны и просуммировать сумма значенийJavascript сумма многомерный массив
var data = [
[
{field: 123, sum: 100},
{field: 345, sum: 98}
],[
{field: 123, sum: 12},
{field: 345, sum: 20}
]
];
Так из этого массива мне нужен новый, как это.
var newArray = [
{field: 123, sum: 112},
{field: 345, sum: 118}
];
и вот мой код.
var newArray = [];
for(var i = 0; i < data.length; i++) {
for(var j = 0; j < data[i].length; j++) {
var matched = false;
for(var c = 0; c < newArray.length; c++) {
if(data[i][j].field == newArray[c].field) {
matched = true;
newArray[c].sum + data[i][j].sum;
}
}
console.log(data[i][j]);
if(!matched) {
newArray.push(data[i][j]);
}
}
}
, но я не получаю значения правильно. console.log (newArray);
Можете ли вы показать нам, где вы застряли? –
Ваша проблема в _newArray [c] .sum + data [i] [j] .sum; _ вам нужно + = добавить, а не просто +. Использование только оператора + выполняет операцию, но нигде не сохраняется. – Robin
мой плохой! Я поместил свой код и то, что мне не хватало, это знак = 0 на этой строке "newArray [c] .sum + data [i] [j] .sum;" :( – diegoddox