如何检查 Javascript 数组是否包含另一个数组的所有其他元素

时间:2021-01-22 00:23:11

标签: javascript

如果我有一个数组:

let x=  [0,1,2,3,5]

我有一个包含多个子数组的数组:

let winningIndices = [[0, 1, 2], [6, 7, 8], [0, 3, 6], [2, 5, 8], [0, 4, 8], [2, 4, 6]]

如何检查数组 x 是否包含任何一个子数组的所有元素。

换句话说,我如何检查数组 x 是否具有数字 0、1、2 或 6、7、8 的组合...

提前致谢

3 个答案:

答案 0 :(得分:3)

“如何检查数组 x 是否包含任何一个子数组的所有元素。”

这是最直接的函数解释。

const won = winningIndices.some(indices=>
    indices.every(
        item=>x.includes(item)
    )
)

答案 1 :(得分:0)

这可能是一个选择。如果您想从结果中删除 xIncludesItem 键,只需重新映射即可。

var str = "chris <chris.fc@email.in>";
var parts = str.split(/[ ](?=<)/);
var name = parts[0];
var email = parts[1].substring(1, parts[1].length - 1);
console.log("name     = " + name);
console.log("email_id = " + email);

答案 2 :(得分:0)

Array.includes 比 Set.has 慢得多。基于 Ted Brownlow 解决方案的性能稍高的解决方案是:

const setX = new Set(x);
const won = winningIndices.some(indices=>
    indices.every(
        item=>setX.has(item)
    )
)