Javascript:如何对多维数组中的值进行分组和求和
我有这样一个数组:Javascript:如何对多维数组中的值进行分组和求和,javascript,multidimensional-array,Javascript,Multidimensional Array,我有这样一个数组: { "AGE270": 9, "AGE203": 5, // etc } { AGE270: 9, AGE203: 5, AGE208: 9 } 我想分组并得到每次重复的总和,如下所示: { "AGE270": 9, "AGE203": 5, // etc } { AGE270: 9, AGE203: 5, AGE208: 9 } 年龄270:9 年龄203:5 年龄208:9 年龄XX
{
"AGE270": 9,
"AGE203": 5,
// etc
}
{
AGE270: 9,
AGE203: 5,
AGE208: 9
}
我想分组并得到每次重复的总和,如下所示:
{
"AGE270": 9,
"AGE203": 5,
// etc
}
{
AGE270: 9,
AGE203: 5,
AGE208: 9
}
- 年龄270:9
- 年龄203:5
- 年龄208:9
- 年龄XXX:n
计数
现在将是如下所示的对象:
{
"AGE270": 9,
"AGE203": 5,
// etc
}
{
AGE270: 9,
AGE203: 5,
AGE208: 9
}
使用此代码,您将获得sum
对象中每个键对应的总数。大概是这样的:
{
"AGE270": 9,
"AGE203": 5,
// etc
}
{
AGE270: 9,
AGE203: 5,
AGE208: 9
}
试试这个:
function( data ){
var outputObj = {} ;
for(var i=0;i < data.length; i++){
datum = data[i];
if(outputObj[datum.AGENDADOR])
outputObj[datum.AGENDADOR] += parseInt( datum.TOTAL) ;
else
outputObj[datum.AGENDADOR] = parseInt( datum.TOTAL);
}
return outputObj;
功能(数据){
var outputObj={};
对于(变量i=0;i
}) 一个简单的map()函数怎么样?像这样:
var t = YourArray;
var u = t.map(function (a, i) { var g = {}; g[a.AGENDADOR] = a.TOTAL; return g; });
使用函数的简单解决方案:
//用实际数组替换arr!
var arr=[
{AGENDADOR:'AGE270',总数:6},
{AGENDADOR:'AGE270',总数:3},
{AGENDADOR:'AGE203',总数:5},
{AGENDADOR:'AGE028',总数:9},
],
总计=arr.REDUCT(功能(r,o){
(r[o.AGENDADOR])?r[o.AGENDADOR]+=o.TOTAL:r[o.AGENDADOR]=o.TOTAL;
返回r;
}, {});
控制台日志(总计)代码>谢谢,工作得很好,但是,这个“{}”到底是为了什么?我做了一个测试,当然结果不是预期的。@MagnoAlberto,它叫initialValue。我引用了文档中的解释,事情是你以一个不同的对象结束,与原来的对象不一样,但是分组了。谢谢,但它不起作用,我想我会用“map”来完成,当然,你的代码比我的好。看看罗马人的答案,reduce应该也能很好地工作。