检查是否可以在另一个数组中找到所有项

Check if all items can be found in another array

本文关键字:数组 是否 另一个 检查      更新时间:2023-09-26

我需要检查是否可以在另一个数组中找到数组中的所有项。也就是说,我需要检查一个数组是否是另一个数组的子集。

示例:

var array = [1, 2, 5, 7];
var otherArray = [1, 2, 3, 4, 5, 6, 7, 8];

比较上面的这两个数组应该返回true,因为array中的所有项都可以在otherArray中找到。

var array = [1, 2, 7, 9];
var otherArray = [1, 2, 3, 4, 5, 6, 7, 8];

比较上面的这两个数组应该返回false,因为在otherArray中找不到array中的一个项。

我曾尝试在for循环中使用indexOf方法,但没有成功。我希望有人能帮我。:)

使用Array.prototype.every:

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

var array = [1, 2, 7, 9];
var otherArray = [1, 2, 3, 4, 5, 6, 7, 8];
var isSubset = array.every(function(val) {
  return otherArray.indexOf(val) >= 0;
})
document.body.innerHTML = "Is array a subset of otherArray? " + isSubset;