Javascript 数组对象中的数组值总和

Javascript 数组对象中的数组值总和,javascript,arrays,angularjs,multidimensional-array,Javascript,Arrays,Angularjs,Multidimensional Array,我想求数组对象中的位置和。基本上,每个数字代表一个支出项目的年度金额,我需要每年对这些金额进行汇总。该对象看起来像这样(见下文),如果给定下面的对象,结果应该是一个数组=[15001902400] x = [{ "HVAC": [100, 200, 300, 400], "foundation": [500, 600, 700, 800], "roof": [900, 1000, 1100, 1200] }]; 如果阵列没有命名,而是看起来像: x

我想求数组对象中的位置和。基本上,每个数字代表一个支出项目的年度金额,我需要每年对这些金额进行汇总。该对象看起来像这样(见下文),如果给定下面的对象,结果应该是一个数组=[15001902400]

x = [{
      "HVAC": [100, 200, 300, 400],
      "foundation": [500, 600, 700, 800],
      "roof": [900, 1000, 1100, 1200]
    }];
如果阵列没有命名,而是看起来像:

x = [
          [100, 200, 300, 400],
          [500, 600, 700, 800],
          [900, 1000, 1100, 1200]
        ];
然后这个函数将实现我想要的功能(感谢这篇文章):


就目前而言,我需要保持原有的结构,我只是在努力适应这个功能,做我需要的事情。感谢您的帮助

您可以使用
for…in
循环和
reduce

x=[{
“暖通空调”:[100200300400],
“基金会”:[500600700800],
“屋顶”:[900100011001200]
}];
对于(x[0]中的var p){
x[0][p]=x[0][p].reduce((a,b)=>{returna+b});
}

log(x)
稍微不同的解决方案。
var x={“HVAC”:[100200300400],“基础”:[500600700800],“屋顶”:[900100011001200],
结果=对象。键(x)。减少(函数(r,k){
x[k].forEach(函数(a,i){
r[i]=(r[i]| 0)+a;
});
返回r;
}, []);
document.write(“”+JSON.stringify(结果,0,4)+“”)
 $scope.reserveTotals = x.reduce(function(a, b) {
      return a.map(function(v, i) {
        return v + b[i];
      });
    });