Set.prototype.isDisjointFrom()
isDisjointFrom() 方法用于判断一个 Set 实例与另一个集合是否没有共同的元素。它接受一个集合作为参数,并返回一个布尔值,指示该集合是否与给定的集合没有任何共同元素。
语法
js
isDisjointFrom(other)
参数
返回值
如果此集合与 other 集合没有任何共同元素,则返回 true;否则返回 false。
描述
如果两个集合没有任何共同元素,则称它们是不相交的。在数学表示法中:
使用维恩图表示:
isDisjointFrom() 接受 类 Set 对象 作为 other 参数。它要求 this 是一个实际的 Set 实例,因为它直接检索 this 中存储的底层数据,而无需调用任何用户代码。然后,其行为取决于 this 和 other 的大小。
- 如果
this中的元素比other.size多,那么它将通过调用other的keys()方法来迭代other,如果other中的任何元素存在于this中,它将返回false(并通过调用其return()方法来关闭keys()迭代器)。否则,它将返回true。 - 否则,它将迭代
this中的元素,如果this中的任何元素e导致other.has(e)返回一个 真值,则返回false。否则,它将返回true。
由于这种实现方式,isDisjointFrom() 的效率主要取决于 this 和 other 中较小集合的大小(假设集合可以以亚线性时间访问)。
示例
使用 isDisjointFrom()
小于 20 的完全平方数集合与小于 20 的素数集合是不相交的,因为完全平方数根据定义可以分解为两个整数的乘积,而 1 也不被认为是素数。
js
const primes = new Set([2, 3, 5, 7, 11, 13, 17, 19]);
const squares = new Set([1, 4, 9, 16]);
console.log(primes.isDisjointFrom(squares)); // true
小于 20 的完全平方数集合与小于 20 的合数集合不是不相交的,因为所有大于 1 的完全平方数根据定义都是合数。
js
const composites = new Set([4, 6, 8, 9, 10, 12, 14, 15, 16, 18]);
const squares = new Set([1, 4, 9, 16]);
console.log(composites.isDisjointFrom(squares)); // false
规范
| 规范 |
|---|
| ECMAScript® 2026 语言规范 # sec-set.prototype.isdisjointfrom |
浏览器兼容性
加载中…