我需要按顺序将数组的元素添加在一起,与[ How can I add each element of one array to another one's corresponding element using a ParallelStream? 中的问题非常相似。 ,但我使用的是 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];
}
}
关于javascript - 如何使用 javascript 或 Angular 将一个数组的每个元素添加到其他数组中的相应元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25004122/