简介
在本实验中,我们将探索如何检查一个可迭代对象中的值子集是否包含在另一个可迭代对象中。我们将使用 Set 构造函数和 Array.prototype.every() 来创建一个函数,该函数检查第一个可迭代对象中的所有值是否都存在于第二个可迭代对象中。在本实验结束时,你将对如何在 JavaScript 中使用集合有更深入的理解。
在本实验中,我们将探索如何检查一个可迭代对象中的值子集是否包含在另一个可迭代对象中。我们将使用 Set 构造函数和 Array.prototype.every() 来创建一个函数,该函数检查第一个可迭代对象中的所有值是否都存在于第二个可迭代对象中。在本实验结束时,你将对如何在 JavaScript 中使用集合有更深入的理解。
要进行编码练习,请打开终端/SSH 并输入 node。此函数检查第一个可迭代对象是否是第二个可迭代对象的子集,不包括重复值。
要实现这一点,你可以执行以下操作:
Set 构造函数从每个可迭代对象创建一个新的 Set 对象。Array.prototype.every() 和 Set.prototype.has() 检查第一个可迭代对象中的每个值是否都包含在第二个可迭代对象中。以下是一个示例实现:
const subSet = (a, b) => {
const setA = new Set(a);
const setB = new Set(b);
return [...setA].every((value) => setB.has(value));
};
你可以通过传入两个集合进行比较来使用 subSet 函数。例如:
subSet(new Set([1, 2]), new Set([1, 2, 3, 4])); // true
subSet(new Set([1, 5]), new Set([1, 2, 3, 4])); // false
恭喜你!你已经完成了可迭代对象子集实验。你可以在 LabEx 中练习更多实验来提升你的技能。