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