在二维数组中动态创建索引

Dynamically create index in two dimensional array

本文关键字:创建 索引 动态 二维数组      更新时间:2023-09-26

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

第一个可以正常工作。所以我的逻辑没问题。我的问题是我不能动态地创建索引。我不认为push会起作用,因为我在求和。

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

您需要用正确的零数初始化它:

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