基于其中的SectionID在JSON对象数组中分组的总和

时间:2015-07-10 10:21:23

标签: jquery arrays json

我有一个像这样的JSON对象数组

onResume

但我需要将这些JSON对象数组分组到另一个变量,其中分组总和

所以结果变量应该是这样的

mvn exec:exec@foo

我尝试使用每个函数遍历score变量。但那发现很复杂。我们怎样才能以最快捷的方式实现目标

2 个答案:

答案 0 :(得分:1)

使用.forEach和sectionId作为构建新数组的唯一键。我还使用indexMap进行快速索引查找:

var indexMap = {};
var result = [];
scores.forEach(function (item) {
    var index = indexMap[item.sectionid];
    if (typeof index !== 'undefined') {
        result[index].score += item.score;
    } else {
        indexMap[item.sectionid] = result.push(item) - 1;
    }
});
console.log(result);

小提琴示例:http://jsfiddle.net/7a6u38hd/

答案 1 :(得分:0)

试试这个

var ct = {}; 
for(var i=0;i<scores.length;i++) { 
    var tp= scores[i];
    var x = ct[tp.sectionid];
    if(x) {
        x = tp;
        x.score = x.score + tp.score;
    } else {
        x = tp;
    }
}