首页 > 解决方案 > 从 2 个值中获取数组索引

问题描述

我不知道如何正确地用词标题。

我有来自 2D 数组(x 和 y)的 2 个索引,需要将它们相乘以获得第二个数组(1D)的索引,但这并不是那么简单,因为如果 x 或 y 等于 0,它将返回零不管其他值。

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

    int count = 0;

for( int i = 0; i < x; i++ )
{
    for( int j = 0; j < y; j++ )
    {
        count++;
    }
}

//count now equals desired value

...但这似乎非常不切实际。

对我来说,这似乎是一件非常简单的事情,我推迟到现在才问,认为可能是这样。

标签: javascriptarrays

解决方案


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

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

推荐阅读