Set.prototype.intersection()
intersection()
方法是 Set
实例的方法,它接受一个集合并返回一个新的集合,该集合包含此集合和给定集合中的元素。
语法
js
intersection(other)
参数
返回值
一个新的 Set
对象,包含此集合和 other
集合中的元素。
描述
在数学符号中,交集 被定义为
并使用维恩图
intersection()
接受 类似集合 的对象作为 other
参数。它要求 this
是一个实际的 Set
实例,因为它直接检索存储在 this
中的底层数据,而不会调用任何用户代码。然后,它的行为取决于 this
和 other
的大小。
- 如果
this
中的元素比other.size
多,则它会通过调用other
的keys()
方法来迭代other
,并使用所有产生的同时也在this
中存在的元素构造一个新的集合。 - 否则,它会迭代
this
中的元素,并使用this
中所有导致other.has(e)
返回 真值 的元素e
构造一个新的集合。
由于此实现,intersection()
的效率主要取决于 this
和 other
之间较小集合的大小(假设集合可以在亚线性时间内访问)。返回的集合中元素的顺序与 this
和 other
中较小的集合的顺序相同。
示例
使用 intersection()
以下示例计算奇数集合 (<10) 和完全平方数集合 (<10) 之间的交集。结果是奇数且为完全平方数的集合。
js
const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.intersection(squares)); // Set(2) { 1, 9 }
规范
规范 |
---|
Set 方法 # sec-set.prototype.intersection |
浏览器兼容性
BCD 表格仅在浏览器中加载