【发布时间】:2014-07-28 20:50:23
【问题描述】:
我需要将数组的元素按顺序添加在一起,与 [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(天)的数据数组
【问题讨论】:
-
不应该
if (j = 0)是if (j == 0)? -
另外,尝试使用 angular 内置的 for 循环... angular.forEach(series, function(value, index){ ... 你的逻辑在这里 ... });
标签: javascript arrays json angularjs angularjs-scope