我需要一种快速的方法来找到另一个数组。

以下示例描述了我的情况:

我需要找到数组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]

最佳答案

如果find数组中没有重复项,则可以将Array#findIndexArray#everyArray#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));

10-04 22:46
查看更多