Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript或angular将一个数组的每个元素添加到其他数组中的对应元素_Javascript_Arrays_Json_Angularjs_Angularjs Scope - Fatal编程技术网

如何使用javascript或angular将一个数组的每个元素添加到其他数组中的对应元素

如何使用javascript或angular将一个数组的每个元素添加到其他数组中的对应元素,javascript,arrays,json,angularjs,angularjs-scope,Javascript,Arrays,Json,Angularjs,Angularjs Scope,我需要按顺序将数组的元素添加到一起,这与[]中的问题非常相似,但我使用的是javascript和angular。我的数组最多可以包含31(天)的任意数量的元素,但它们在每个数据对象中的元素数量始终相同 $scope.test31days = { "change_series": [ { "data": [0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0], "name": "EMERGENCY",

我需要按顺序将数组的元素添加到一起,这与[]中的问题非常相似,但我使用的是javascript和angular。我的数组最多可以包含31(天)的任意数量的元素,但它们在每个数据对象中的元素数量始终相同

$scope.test31days = {
  "change_series": [
    { "data": [0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0],
      "name": "EMERGENCY",
      "color": "#904040"},
    { "data": [0,1,3,0,0,0,0,1,2,3,3,0,0,0,2,1,1,1,0,0,1,1,3,3,1,0,0,1,2,2,0],
      "name": "MINOR",
      "color": "#333"},
    { "data": [0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0],
      "name": "MAJOR",
      "color": "#666"}
  ],
  "change_title": "CHANGES"
}
我的控制台输出告诉我我正确地分离了元素(在某种程度上),但是当我使用if/elseif语句运行时,我会使浏览器崩溃,所以我知道我搞错了什么

$scope.getTotalChanges = function(){
  var series = $scope.test31days.change_series;
  var arry = [];

  for(var i = 0; i < series.length; i++){
    // console.log('change_series loop #', i);
    // console.log('change_series.data length', series[i].data.length);

    var seriesData = series[i].data;
    // console.log('series[i].name', series[i].name)        
    // console.log('seriesData', seriesData)

    for(var j = 0; j < seriesData.length; j++){
      console.log('For inner #', j);
      console.log('seriesData #', seriesData[j]);

      if (j = 0) {
        arry = seriesData;
      } else if (j > 0) {
        arry[j] += seriesData[j]
      };
    }
  }

  // return series;
  console.log('arry ', arry);
  return arry;
};
$scope.getTotalChanges=function(){
变量系列=$scope.test31days.change_系列;
var-arry=[];
对于(变量i=0;i0){
arry[j]+=系列数据[j]
};
}
}
//返回序列;
控制台日志('arry',arry);
返航;
};
我的最终目标是为31(天)

var series=$scope.test31days.change\u series创建一个数据数组;
var dataLength=series[0]。data.length;
var result=Array.apply(null,新数组(dataLength)).map(Number.prototype.valueOf,0);//用零初始化结果数组
对于(变量i=0;i
不应该
if(j=0)
be
if(j==0)
?另外,尝试使用angular的内置for循环…angular.forEach(series,function(value,index){…你的逻辑在这里…});我尝试将其插入我的指令,结果显示为
var result=new Array(dataLength).map(Number.prototype.valueOf,0);
正在返回一个NaN的数组。谷歌搜索告诉我这是数字中非法数字的结果。还有其他想法吗?那行应该是:
var result=array.apply(null,new array(dataLength)).map(number.prototype.valueOf,0);
啊哈!非常感谢!
var series = $scope.test31days.change_series;
var dataLength = series[0].data.length;
var result = Array.apply(null, new Array(dataLength)).map(Number.prototype.valueOf,0); //initialize result array with zeros

for(var i = 0; i < series.length; i++) {
  for(var j = 0; j < dataLength; j++) {
    result[j] += series[i].data[j];
  }
}