📅  最后修改于: 2023-12-03 14:52:21.249000             🧑  作者: Mango
在 JavaScript 中,有时我们需要检查一个数组是否包含另一个数组中的值。这个问题的解决方法有多种,下面将介绍其中的几个方法。
ES6 中的 Set 对象可以用来存储任何类型的唯一值,包括数组。可以通过将数组转换为 Set,然后使用 Set.prototype.has() 方法来检查数组是否包含另一个数组中的值。
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [3, 5];
// 将 arr1 转换为 Set 对象
const set = new Set(arr1);
// 检查 set 是否包含 arr2 中的所有值
const containsAll = arr2.every(value => set.has(value));
console.log(containsAll); // true
JavaScript 数组对象有一个名为 includes() 的方法,该方法可以用来检查数组是否包含一个指定的值。可以使用数组的 every() 方法来检查数组中是否包含另一个数组中的每一个值。
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [3, 5];
// 检查 arr1 是否包含 arr2 中的所有值
const containsAll = arr2.every(value => arr1.includes(value));
console.log(containsAll); // true
JavaScript 数组对象还有一个名为 indexOf() 的方法,该方法可以用来查找一个指定值在数组中的位置。可以使用数组的 every() 方法来检查数组中是否包含另一个数组中的每一个值。
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [3, 5];
// 检查 arr1 是否包含 arr2 中的所有值
const containsAll = arr2.every(value => arr1.indexOf(value) !== -1);
console.log(containsAll); // true
以上是三种常用的方法,你也可以结合一些高级的函数来完成这个问题,比如:
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [3, 5];
// 使用 filter() 和 includes() 检查 arr1 是否包含 arr2 中的所有值
const containsAll = arr2.filter(value => !arr1.includes(value)).length === 0;
console.log(containsAll); // true
无论使用哪种方法,都可以轻松地检查一个数组是否包含另一个数组中的值。