我不确定标题的正确用词方式。
我从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
...但是那似乎不切实际。
在我看来,这似乎应该非常简单,我一直推迟到现在才问,认为可能是这样。
答案 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]);
}
}