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

标签 javascript arrays dynamic indexing

使用此脚本时遇到一些问题。它迭代二维数组并将每个相应的索引添加在一起。所以基本上 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]];

最佳答案

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

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

关于javascript - 在二维数组中动态创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16024783/

相关文章:

javascript - 如何读取node.js中回调函数的错误

javascript - 如何查看与Shadow dom相关的HTML和CSS

javascript - 有人可以帮助我使用这种从某些值拆分数组的算法吗?

reverseArrayInPlace 的 JavaScript 函数 -- Eloquent JavaScript Ch4

java - Java 中的动态继承

c# - 获取动态类型的属性

javascript - Angularjs 在集合中使用 Rowspan

javascript - 使用 2D javascript 数组中每个元素的随机值初始化新对象?

python - 增加 numpy 矩阵中的元素也会影响不同的矩阵和不相关的行

c# - 使用 Dynamic 将 XML 反序列化为对象