[英]Javascript search for element in multidimensional array
我有以下代码来组合一个数组和一个数组数组。
var arr1 = ["A", "B", "C", "D"];
var arr2 = [[1, 2, 3, 4, 3, 2],
[4, 3, 7, 2, 5, 3],
[8, 1, 9, 2, 8, 4],
[2, 5, 9, 8, 7, 6],
]
var result = [], i = -1;
while ( arr1[++i] ) {
result.push( [ arr1[i], arr2[i] ] );
}
这是最终数组的外观
var final =[["A", [1, 2, 3, 4, 3, 2]],
["B", [4, 3, 7, 2, 5, 3]],
["C", [8, 1, 9, 2, 8, 4]],
["D", [2, 5, 9, 8, 7, 6]],
]
我正在尝试创建一个函数,在其中提供要从数组数组返回的列#的字母和索引。
即,如果我给它B
和2
,它将返回result[1][1][2]
为7
。
如果我给它D
和5
,它将返回result[3][1][5]
为6
我尝试使用indexOf
但由于该数组有3个维度,因此很难搜索。
这是我用我的样本制作的jsFiddle任何帮助将不胜感激
编辑:似乎我唯一的问题是返回字母所在的列#。 如何使用indexOf搜索第一列中是否存在字母?
这个功能如何:
function find(text, col) {
for(var i = 0; i < result.length; i++)
if(result[i][0].equals(text)) return result[i][1][col - 1];
return null;
}
console.log(find("B", 3));
var arr1 = ["A", "B", "C", "D"]; var arr2 = [ [1, 2, 3, 4, 3, 2], [4, 3, 7, 2, 5, 3], [8, 1, 9, 2, 8, 4], [2, 5, 9, 8, 7, 6], ] var result = [], i = -1; while (arr1[++i]) { result.push([arr1[i], arr2[i]]); } console.log(result) //Try to find element where text == "B" and return the 3rd column console.log(find("B", 3)) function find(text, col) { for (var i = 0; i < result.length; i++) if (result[i][0] == text) return result[i][1][col - 1]; return null; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.