Set.prototype.isSupersetOf()

基线 2024

新可用

2024 年 6 月起,此功能在最新的设备和浏览器版本中均可使用。此功能可能在较旧的设备或浏览器中无法使用。

isSupersetOf()Set 实例的方法,它接受一个集合并返回一个布尔值,指示给定集合的所有元素是否都在此集合中。

语法

js
isSupersetOf(other)

参数

other

一个 Set 对象,或 类似集合 的对象。

返回值

如果 other 集合中的所有元素也都在此集合中,则为 true,否则为 false

描述

在数学符号中,超集 的定义如下

A B x B , x A A\supseteq B \Leftrightarrow \forall x\in B,\,x\in A

并使用韦恩图

A Venn diagram with two circles. A is a superset of B because B is completely contained in A.

注意:超集 关系不是真超集,这意味着如果thisother 包含相同的元素,则 isSupersetOf() 返回 true

isSupersetOf() 接受 类似集合 的对象作为 other 参数。它要求 this 是一个实际的 Set 实例,因为它直接检索存储在 this 中的底层数据,而不调用任何用户代码。然后,它的行为取决于 thisother 的大小

  • 如果 this 中的元素少于 other.size,则它直接返回 false
  • 否则,它通过调用 otherkeys() 方法来迭代 other,如果 other 中的任何元素都不存在于 this 中,则它返回 false(并通过调用其 return() 方法来关闭 keys() 迭代器)。否则,它返回 true

示例

使用 isSupersetOf()

偶数集合 (<20) 是 4 的倍数集合 (<20) 的超集

js
const evens = new Set([2, 4, 6, 8, 10, 12, 14, 16, 18]);
const fours = new Set([4, 8, 12, 16]);
console.log(evens.isSupersetOf(fours)); // true

所有奇数集合 (<20) 不是素数集合 (<20) 的超集,因为 2 是素数但不是奇数

js
const primes = new Set([2, 3, 5, 7, 11, 13, 17, 19]);
const odds = new Set([3, 5, 7, 9, 11, 13, 15, 17, 19]);
console.log(odds.isSupersetOf(primes)); // false

等价集合是彼此的超集

js
const set1 = new Set([1, 2, 3]);
const set2 = new Set([1, 2, 3]);
console.log(set1.isSupersetOf(set2)); // true
console.log(set2.isSupersetOf(set1)); // true

规范

规范
Set 方法
# sec-set.prototype.issupersetof

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见