可迭代对象的超集

Beginner

This tutorial is from open-source community. Access the source code

简介

在本实验中,我们将探索如何使用 Set 构造函数和 Array.prototype.every() 方法来确定一个可迭代对象是否是另一个可迭代对象的超集。本实验将引导你创建一个函数,该函数用于检查第一个可迭代对象是否包含第二个可迭代对象的所有元素,同时排除任何重复项。在实验结束时,你将对如何在 JavaScript 中使用集合有更深入的理解。

检查一个集合是否是另一个集合的超集的函数

要检查一个集合是否是另一个集合的超集,请使用 superSet() 函数。首先,打开终端/SSH 并输入 node 以开始练习编码。然后,按照以下步骤操作:

  • 使用 Set 构造函数从每个可迭代对象创建一个新的 Set 对象。
  • 使用 Array.prototype.every()Set.prototype.has() 检查第二个可迭代对象中的每个值是否都包含在第一个可迭代对象中。
  • 如果第一个可迭代对象是第二个可迭代对象的超集(排除重复值),则该函数返回 true。否则,返回 false
const superSet = (a, b) => {
  const sA = new Set(a),
    sB = new Set(b);
  return [...sB].every((v) => sA.has(v));
};

使用两个集合作为参数调用 superSet(),以检查一个集合是否是另一个集合的超集。

superSet(new Set([1, 2, 3, 4]), new Set([1, 2])); // true
superSet(new Set([1, 2, 3, 4]), new Set([1, 5])); // false

总结

恭喜你!你已经完成了可迭代对象的超集实验。你可以在 LabEx 中练习更多实验来提升你的技能。