Set.prototype.isDisjointFrom()
isDisjointFrom()
是 Set
实例的方法,它接受一个集合并返回一个布尔值,指示该集合是否与给定集合没有共同的元素。
语法
js
isDisjointFrom(other)
参数
返回值
如果该集合与 other
集合没有共同的元素,则返回 true
,否则返回 false
。
描述
如果两个集合没有共同的元素,则它们是不相交的。用数学符号表示
A\text{ 与 }B 不相交 \Leftrightarrow A\cap B = \empty
使用维恩图
isDisjointFrom()
接受 类似集合 的对象作为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()
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
规范
完全平方数的集合(<20)与合数的集合(<20)不相交,因为所有非 1 完全平方数根据定义都是合数 |
---|
规范 # 集合方法 |
浏览器兼容性
sec-set.prototype.isdisjointfrom