0

这个脚本有一些问题。它遍历一个二维数组并将每个对应的索引加在一起。所以基本上 arr[0][1] + arr[0][2] + arr[0][3] ... arr[1][1] + arr[1][2] + arr[1][3 ] ...ETC。

这第一个工作正常。所以我的逻辑没问题。我的问题是我无法动态创建索引。我认为推动不会起作用,因为我在这里对值求和。

var cat_stats_week_radar = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0]];


    for (var i = 0; i < cat_stats_week.length; i++) {
        for (var j = 0; j < cat_stats_week[0].length; j++) {
            cat_stats_week_radar[0][j] += +(cat_stats_week[i][j]);
        }

}

这个不起作用,我没有收到错误,只是一堆 NaN 值。

var cat_stats_week_radar = [[]];


    for (var i = 0; i < cat_stats_week.length; i++) {
        for (var j = 0; j < cat_stats_week[0].length; j++) {
            cat_stats_week_radar[0][j] += +(cat_stats_week[i][j]);
        }

}

这是我正在使用的数组。

要添加的数组:

var cat_stats_week = [
[0,0,0,0,0,0,0,1,0,0,0,0,0,0],
[0,0,0,0,0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,1,0],
[0,0,0,0,0,0,0,0,0,0,0,0,1,0],
[0,0,1,0,0,0,0,0,0,0,0,0,0,0]
];

结果数组:

var cat_stats_week_radar = [[0, 0, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2, 0]];
4

1 回答 1

2

您需要使用正确数量的零对其进行初始化:

var cat_stats_week_radar = [[]];

for (var i = 0; i < cat_stats_week[0].length; i++) {
    cat_stats_week_radar[0].push(0);
}

并使用Underscore.js

_.map(_.zip.apply(null, cat_stats_week), function(a) {
    return _.reduce(a, function(a, b) {
        return a + b
    })
});
于 2013-04-15T21:18:18.123 回答