在arrray中,多个对象需要使用javascript使用sum值megre单个对象

在arrray中,多个对象需要使用javascript使用sum值megre单个对象,javascript,arrays,object,merge,sum,Javascript,Arrays,Object,Merge,Sum,我有一个包含多个数组对象的数组的结果,我需要将结果合并到单个数组中,唯一值为content和值为sumtotal,如下所示。我们非常感谢你的帮助 结果集 期望结果 我当前的实现尝试执行以下操作: var transformed = arr.reduce(function(a, b){ return a.concat(b); }); console.log(transformed ); 如果所有嵌套数组中的顺序相同,则可以使用以下命令 var-arr=[ [{ 内容:'aqrie', 总数:

我有一个包含多个数组对象的数组的结果,我需要将结果合并到单个数组中,唯一值为
content
和值为sum
total
,如下所示。我们非常感谢你的帮助

结果集

期望结果

我当前的实现尝试执行以下操作:

var transformed = arr.reduce(function(a, b){ return a.concat(b); });
console.log(transformed ); 

如果所有嵌套数组中的顺序相同,则可以使用以下命令

var-arr=[
[{
内容:'aqrie',
总数:5
}, {
内容:“邮件功能”,
总数:4
}],
[{
内容:'aqrie',
总数:4
}, {
内容:“邮件功能”,
总数:10
}]
];
//用于合并阵列的reduce函数
var res=arr.reduce(函数(a,b){
//迭代数组以更新总数
var ret=a.map(函数(v,i){
v、 总计+=b[i]。总计;
//返回更新的对象
返回v;
});
//返回合并数组
返回ret;
});
document.write(''+JSON.stringify(res,null,3)+'')试试看

函数展平和和(arr){
var newArr=[];
var存在;
arr.forEach(功能(itm){
itm.forEach(功能(内部){
现有=findIt(内部,新arr);
如果(现有){
现有的.total+=内部的.total;
}否则{
新推力(内);
}
});
});
返回newArr;
}
函数findIt(obj,newArr){

对于(var i=0;ipranav,OP的要求与您的回答完全不同。@PranavCBalan我有数组的动态值,我不使用静态方法的此函数
[
  {
    content: 'Aqurie',
    total: 9
  },
  {
    content: 'Mail function',
    total: 14
  }
]
var transformed = arr.reduce(function(a, b){ return a.concat(b); });
console.log(transformed ); 
function flattenAndSum(arr){
  var newArr = [];
  var existing;
  arr.forEach(function(itm){
    itm.forEach(function(inner){
      existing = findIt(inner,newArr);
      if(existing){
        existing.total += inner.total;
      } else {
         newArr.push(inner);
      }
    });
  });

  return newArr;
}

function findIt(obj,newArr){
 for(var i=0;i<newArr.length;i++) {
   if(newArr[i].content === obj.content){
     return newArr[i];
   }
 }
}

console.log(flattenAndSum(arr));