Javascript Angular JS-如何求json数组值的和?

Javascript Angular JS-如何求json数组值的和?,javascript,arrays,json,angular,Javascript,Arrays,Json,Angular,如何对JSON数组数据中的totalItem数量求和 [{"group": "B", "totalItem": 1}, {"group": "A", "totalItem": 1}, {"group": "C", "totalItem": 2}, {"group": "B", "totalItem": 3}, {"group": "A", "totalItem": 6}, {"group": "C", "totalItem": 2},] 在上面的例子中,我如何将所有在角度上具有相同组的tota

如何对JSON数组数据中的
totalItem
数量求和

[{"group": "B", "totalItem": 1},
{"group": "A", "totalItem": 1},
{"group": "C", "totalItem": 2},
{"group": "B", "totalItem": 3},
{"group": "A", "totalItem": 6},
{"group": "C", "totalItem": 2},]
在上面的例子中,我如何将所有在角度上具有相同组的
totalItem
相加?

简单为“Good day”

let counters=myArray.reduce((p,n)=>{
如果(p[n.group]){p[n.group]+=n.totalItem;}
else{p[n.group]=n.totalItem;}
返回p;
}, []);
这是Javascript中常见的groupBy。首先,在数组上有
reduce
函数:它遍历数组并执行任何您想要的操作

第一个参数是一个函数,它将执行您要求的操作,第二个参数是起始值

在这里,您从一个空数组开始
[]

然后,迭代项目。我已经命名了两个变量,
p
表示前一个变量(将在末尾返回的值),而
n
表示下一个变量(数组的当前对象)

条件是:

如果数组中存在该组,则将totalItem添加到该组中。如果不是,则使用totalItem的值创建它


最后,您将拥有一个包含所有组的关联数组

这里有一种方法,你可以通过它来理解这个过程

var totals = {};   //This object will have the sums of each group

//Go through your array
myArray.forEach(function(item){   

    if (typeof totals[item.group] === 'undefined')     
        totals[item.group] = item.totalItem            //Create a new group item in the result object
    else                                               
        totals[item.group] += item.totalItem;          //Item is there - so aggregate the value

})

你用谷歌搜索了吗。抱歉这么粗鲁,但这是很常见的问题。Angular与此无关。这只是简单的JavaScript/逻辑。了解循环和数组操作。并尝试一些东西。一个解释会很好。这是一个Javascript groupBy函数。这很常见,我认为没有必要解释。既然你问了,我就把它写下来。为什么要用[]作为初始值?你肯定是说{}。还有,一个大括号不见了。不,我是说
[]
。这是一个值的关联数组,如说明中所述。但是当然,你可以使用
{}
,任何能让你的船漂浮的东西。