簡體   English   中英

檢查數組是否包含嵌套數組的所有元素

[英]Check if an array contains all the elements of an array that is nested

我將有 2 個 arrays 如下。 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中,我希望檢查器 function 向我返回 combosArr 的元素(這是一個數組)。 我嘗試了以下對我不起作用的代碼。

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

這是工作代碼:

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 個單獨的 arrays,如下所示:

[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]

這段代碼使伎倆:

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

combosArr.forEach(e => {
if(e.every(r => arr1.includes(r)))
  console.log(e);
})

或以下內容,僅當 combosArr 中 arrays 的所有元素都包含 arr1 的元素時才打印:

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

combosArr.forEach(e => {
if(e.every(r => arr1.includes(r)))
  count++;
})
if(count == combosArr.length)
  console.log(combosArr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM