javascript - 使用 JavaScript 在多维数组 B 中查找数组 A

标签 javascript arrays search multidimensional-array

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

下面的例子描述了我的场景:

我需要找到数组 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#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));

关于javascript - 使用 JavaScript 在多维数组 B 中查找数组 A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48150220/

相关文章:

android - Intent 中的可序列化对象以字符串形式返回

javascript - knockout JS : Subscribe inner observable of observableArray entry

javascript - 没有 jQuery 的自由滚动粘性侧边栏

javascript - 为什么我的 messaging.getToken() 在 firefox 中有效但在 chrome 中无效?

javascript - 排序嵌套数组

search - 无法执行sphinx搜索命令未找到

c - 使用系统调用进行子字符串搜索

javascript - Angular - 我可以将两个数组分开并在 ng-repeat 中使用它们吗?

arrays - 检测字符串是否包含字符串数组的任何元素

javascript - 从表格单元格中获取值并转换为数组