检查数组是否包含另一个数组的所有元素

lak*_*shi 6 javascript arrays

目标阵列 [1,2,3]

array1 = [1,2,3]; //return true
array2 = [1,2,3,4]; //return true
array3 = [1,2] //return false
Run Code Online (Sandbox Code Playgroud)

我不知道如何实现这一目标,或者可能需要在其中使用自定义登录。我已经使用了一些内容,但包含的内容对我不起作用。

Moh*_*man 22

您可以使用.every().includes()方法:

let array1 = [1,2,3],
    array2 = [1,2,3,4],
    array3 = [1,2];

let checker = (arr, target) => target.every(v => arr.includes(v));

console.log(checker(array2, array1));
console.log(checker(array3, array1));
Run Code Online (Sandbox Code Playgroud)

  • 上次有人使用数字数组是什么时候? (2认同)

Mam*_*mun 22

您可以尝试Array.prototype.every()

every()方法测试数组中的所有元素是否通过提供的函数实现的测试。

Array.prototype.includes()

includes()方法确定数组是否包含某个元素,根据情况返回 true 或 false。

var mainArr = [1,2,3];
function isTrue(arr, arr2){
  return arr.every(i => arr2.includes(i));
}
console.log(isTrue(mainArr, [1,2,3]));
console.log(isTrue(mainArr, [1,2,3,4]));
console.log(isTrue(mainArr, [1,2]));
Run Code Online (Sandbox Code Playgroud)


cod*_*key 18

every()方法测试数组中的所有元素是否通过提供的函数实现的测试。它返回一个布尔值。按理说,如果您调用every()原始数组并为其提供一个函数来检查原始数组中的每个元素是否包含在另一个数组中,您就会得到答案。像这样:

const ar1 = ['a', 'b'];
const ar2 = ['c', 'd', 'a', 'z', 'g', 'b'];

if(ar1.every(r => ar2.includes(r))){
  console.log('Found all of', ar1, 'in', ar2);
}else{
  console.log('Did not find all of', ar1, 'in', ar2);
}
Run Code Online (Sandbox Code Playgroud)