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

How can I add each element of one array to corresponding elements in other arrays with javascript or angular

本文关键字:数组 元素 其他 angular javascript 一个 添加      更新时间:2023-09-26

我需要按顺序将数组的元素添加在一起,非常类似于[我如何将一个数组的每个元素添加到另一个's使用并行流的相应元素的问题]?,但我使用的是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/else if语句运行它时,我崩溃了浏览器,所以我知道我搞砸了什么。

$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;
};

我的最终目标是拥有31(天)的数据的单个数组

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];
  }
}