Set.prototype.isDisjointFrom()

Baseline 2024
新推出

自 2024 年 6 月起,此功能已在最新的裝置和瀏覽器版本中可用。此功能可能不適用於較舊的裝置或瀏覽器。

isDisjointFrom() 方法用於判斷一個 Set 例項與另一個集合是否沒有共同的元素。它接受一個集合作為引數,並返回一個布林值,指示該集合是否與給定的集合沒有任何共同元素。

語法

js
isDisjointFrom(other)

引數

其他

一個 Set 物件,或 類 Set 物件

返回值

如果此集合與 other 集合沒有任何共同元素,則返回 true;否則返回 false

描述

如果兩個集合沒有任何共同元素,則稱它們是不相交的。在數學表示法中:

A 不相交於 BAB=A\text{ 與 }B \text{ 不相交} \Leftrightarrow A\cap B = \empty

使用維恩圖表示:

A Venn diagram with two circles. A and B are disjoint because the circles have no region of overlap.

isDisjointFrom() 接受 類 Set 物件 作為 other 引數。它要求 this 是一個實際的 Set 例項,因為它直接檢索 this 中儲存的底層資料,而無需呼叫任何使用者程式碼。然後,其行為取決於 thisother 的大小。

  • 如果 this 中的元素比 other.size 多,那麼它將透過呼叫 otherkeys() 方法來迭代 other,如果 other 中的任何元素存在於 this 中,它將返回 false(並透過呼叫其 return() 方法來關閉 keys() 迭代器)。否則,它將返回 true
  • 否則,它將迭代 this 中的元素,如果 this 中的任何元素 e 導致 other.has(e) 返回一個 真值,則返回 false。否則,它將返回 true

由於這種實現方式,isDisjointFrom() 的效率主要取決於 thisother 中較小集合的大小(假設集合可以以亞線性時間訪問)。

示例

使用 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

瀏覽器相容性

另見