Set.prototype.difference()
Baseline 2024
Newly available
Since June 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Set
实例的 difference()
方法接受一个集合并返回一个新的集合,其中包含当前集合中存在但给定集合中不存在的所有元素。
语法
js
difference(other)
参数
返回值
一个新的 Set
对象,包含存在于当前集合但不存在于 other
中的所有元素。
描述
使用数学记号,差集的定义如下:
使用维恩图表示:
difference()
接受类集合对象作为 other
参数。方法要求 this
是一个 Set
实例,因为它直接检索存储在其中的底层数据,而不调用任何用户代码。然后,它的行为取决于 this
和 other
的大小:
- 如果
this
的元素数量大于other.size
,则通过调用keys()
方法遍历other
,并使用this
中所有在other
中未见过的元素构造一个新的集合。 - 否则,它会遍历
this
中的元素,并使用this
中的所有使other.has(e)
返回假值的元素e
构造一个新集合。
返回的集合的元素的顺序与 this
相同。
示例
使用 difference()
以下示例计算奇数集(<10)和完全平方集(<10)的差集。其结果是一组不是完全平方数的奇数。
js
const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.difference(squares)); // Set(3) { 3, 5, 7 }
规范
Specification |
---|
Set methods # sec-set.prototype.difference |
浏览器兼容性
BCD tables only load in the browser