从2个值获取数组索引

时间:2018-09-13 23:46:04

标签: javascript arrays

我不确定标题的正确用词方式。

我从2D数组(x和y)中有2个索引,需要将它们相乘以获得第二个数组(1D)的索引,但是并不是那么简单的“因为x或y等于零,就可以了”不管其他值如何,都会返回零。

我可以使用下面显示的嵌套循环来解决这个问题:

    nrow V1
 1:    1  1
 2:    2  1
 3:    3  1
 4:    4  1
 5:    5  2
 6:    6  2
 7:    7  2
 8:    8  2
 9:    9  3
10:   10  3
11:   11  3
12:   12  3

...但是那似乎不切实际。

在我看来,这似乎应该非常简单,我一直推迟到现在才问,认为可能是这样。

1 个答案:

答案 0 :(得分:0)

让我们使用以下数据创建示例:

var array_2d = [[0,1,2],[3,4,5]];
var array_1d = [0, 1, 2, 3, 4, 5];

如果所有子数组都具有相同的大小,则可以简单地将i索引乘以your sub array’s length,以找到一维数组的相应“行”。然后,您可以简单地添加数组的“列”索引。

但这仅在使用宽度固定的矩阵时才有效。

var sub_dimensional_array_length = 3;
for (var i = 0; i < array_2d.length; i++) {
    for (var j = 0; j < array_2d[i].length; j++) {
        var array_1d_index = (sub_dimensional_array_length * i) + j;
        console.log(array_2d[i][j], array_1d[array_1d_index]);
    }
}