var dataRow = [{id:1, sum: 10}, {id:2, sum: 15}, {id:1, sum: 20}];
var obj = {};
$(dataRow).each(function(e, i){
obj[i.id] = i.sum;
});
console.log(obj)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
На выходе получается:
{
"1": 20,
"2": 15
}
а надо чтобы у объектов с одинаковым значением id суммировался sum
на выходе должен получится объект вот в таком виде:
{
"1": 30, // 10 + 20
"2": 15
}
Замените простое присваивание
obj[i.id] = i.sum;
на присваивание со сложением, например вот так
obj[i.id] = (obj[i.id] || 0) + i.sum;
var dataRow = [{id:1, sum: 10}, {id:2, sum: 15}, {id:1, sum: 20}];
var obj = {};
$(dataRow).each(function(e, i){
obj[i.id] = (obj[i.id] || 0) + i.sum;
});
console.log(obj)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости