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 |
瀏覽器相容性
載入中…