我需要一种快速的方法来在另一个数组中找到一个数组。
下面的例子描述了我的场景:
我需要找到数组 A:
var A = ["A0", "B0", "C0", "D2", "E2", "F0", "G2"];
在数组 B 中(请注意,我的 B 数组可能包含数百万个结果):
B[
["X0", "O0", "I0", "Z2", "T2", "L0", "V2"],
["I0", "V2", "O0", "T0", "L4", "X0", "Z3"],
["A0", "B0", "C0", "D2", "E2", "F0", "G2"],
["Z2", "L7", "T0", "I1", "V3", "X0", "O0"],
["Z3", "I1", "O0", "T3", "X0", "L2", "V2"],
["O0", "X0", "I1", "T2", "V0", "Z3", "L2"],
["I0", "Z0", "L7", "X0", "V3", "O0", "T3"],
["L3", "X0", "I1", "O0", "V0", "Z1", "T1"]
];
是否有一个函数可以为我提供真或假陈述,或者提供实际结果,在上述情况下是:B[2]
最佳答案
如果查找数组中没有重复项,则可以使用 Array#findIndex
与 Array#every
和 Array#includes
.
function getIndex(needle, haystack) {
return haystack.findIndex(h => needle.every(n => h.includes(n)));
}
var a = ["A0", "B0", "C0", "D2", "E2", "F0", "G2"],
b = [["X0", "O0", "I0", "Z2", "T2", "L0", "V2"], ["I0", "V2", "O0", "T0", "L4", "X0", "Z3"], ["A0", "B0", "C0", "D2", "E2", "F0", "G2"], ["Z2", "L7", "T0", "I1", "V3", "X0", "O0"], ["Z3", "I1", "O0", "T3", "X0", "L2", "V2"], ["O0", "X0", "I1", "T2", "V0", "Z3", "L2"], ["I0", "Z0", "L7", "X0", "V3", "O0", "T3"], ["L3", "X0", "I1", "O0", "V0", "Z1", "T1"]];
console.log(getIndex(a, b));
关于javascript - 使用 JavaScript 在多维数组 B 中查找数组 A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48150220/