javascript - 从 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
...但这似乎非常不切实际。
对我来说,这似乎是一件非常简单的事情,我推迟到现在才问,认为可能是这样。
解决方案
让我们使用以下数据创建一个示例:
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]);
}
}
推荐阅读
- c# - 我可以在哪里存储用户在 c# 中提供的连接字符串?
- regex - 在postgres中的正则表达式匹配后从列中提取信息
- firebase - Firestore 快照侦听器 - fromCache 值不一致
- python - 从具有 2 个公共键的字典列表中构建新字典的最有效方法?
- asp.net-core - Web Api 中是否可以使用 DuplicatePropertyNameHandling?
- r - 一次合并两个以上的数据帧
- linux - 如何使用 awk 打印除特定字段之外的所有字段?
- php - 在php中确定类子类型
- mysql - 2表连接需要MySql查询优化帮助
- css - 如何为 SVG 的某些部分设置动画