首页 > 解决方案 > 检查数组是否包含嵌套数组的所有元素

问题描述

我将有 2 个数组,如下所示。combosArr是一个二维数组,arr1是一个整数数组

let combosArr = [[1,2,3], [3,6,9]];
let arr1 = [1,2,3,4,5,6,7]; // return [1,2,3]

如果该元素的combosArr每个整数都存在于arr1. 我尝试了以下对我不起作用的代码。

let checker = (compareThis, combos) => {
    combos.some(array => {
        array.every(e => {
            if (compareThis.includes(e)) console.log(array);
        })
    })
}

标签: javascript

解决方案


这是工作代码:

let combosArr = [[1,6,7], [1,2]];
let arr1 = [1,2,3,4,5,6,7];

let checker = (compareThis, combos) => {
    combos.forEach(array => {
        const isP = (e) => arr1.includes(e);
        const isPresent = array.every(isP);
        if (isPresent) console.log(array);
   });
}

这将为您提供 2 个单独的数组,如下所示:

[1,6,7] [1,2]

或者您可以使用以下代码创建一个数组:

let combosArr = [[1,6,7], [1,2]];
let arr1 = [1,2,3,4,5,6,7];
let finalArray = [];

let checker = (compareThis, combos) => {
    combos.forEach(array => {
        const isP = (e) => arr1.includes(e);
        const isPresent = array.every(isP);
        if (isPresent) finalArray.push(array);
    });
    console.log(finalArray)
}

这将为您提供一个数组

[1,6,7,1,2]

推荐阅读