【问题标题】:Dynamically create index in two dimensional array在二维数组中动态创建索引
【发布时间】:2013-04-15 21:13:27
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript arrays dynamic indexing


    【解决方案1】:

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

    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-02-22
      • 2011-08-14
      • 2020-05-20
      • 2017-06-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      相关资源
      最近更新 更多