Set.prototype.isDisjointFrom()

Baseline 2024
Newly available

Since June 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die isDisjointFrom() Methode von Set Instanzen nimmt eine Menge und gibt einen booleschen Wert zurück, der angibt, ob diese Menge keine gemeinsamen Elemente mit der angegebenen Menge hat.

Syntax

js
isDisjointFrom(other)

Parameter

other

Ein Set-Objekt oder ein set-ähnliches Objekt.

Rückgabewert

true, wenn diese Menge keine gemeinsamen Elemente mit der other Menge hat, andernfalls false.

Beschreibung

Zwei Mengen sind disjoint (disjunkt), wenn sie keine gemeinsamen Elemente haben. In mathematischer Notation:

A ist disjunkt von BAB=A\text{ ist disjunkt von }B \Leftrightarrow A\cap B = \empty

Und mithilfe eines Venn-Diagramms:

Ein Venn-Diagramm mit zwei Kreisen. A und B sind disjunkt, weil die Kreise keine überlappende Region haben.

isDisjointFrom() akzeptiert set-ähnliche Objekte als other Parameter. Es erfordert, dass this eine tatsächliche Set Instanz ist, da es direkt auf die zugrunde liegenden Daten zugreift, die in this gespeichert sind, ohne benutzerdefinierten Code auszuführen. Dann hängt das Verhalten von den Größen von this und other ab:

  • Wenn es mehr Elemente in this als other.size gibt, wird über other iteriert, indem dessen keys() Methode aufgerufen wird. Wenn ein Element in other in this vorhanden ist, gibt es false zurück (und schließt den keys() Iterator durch Aufruf von dessen return() Methode). Andernfalls gibt es true zurück.
  • Andernfalls wird über die Elemente in this iteriert, und es wird false zurückgegeben, wenn ein Element e in this dazu führt, dass other.has(e) einen truthy Wert zurückgibt. Andernfalls gibt es true zurück.

Aufgrund dieser Implementierung hängt die Effizienz von isDisjointFrom() hauptsächlich von der Größe der kleineren Menge zwischen this und other ab (vorausgesetzt, dass auf Mengen in sublinearer Zeit zugegriffen werden kann).

Beispiele

Verwendung von isDisjointFrom()

Die Menge der perfekten Quadrate (<20) ist disjunkt von der Menge der Primzahlen (<20), da ein perfektes Quadrat per Definition als Produkt von zwei ganzen Zahlen zerlegbar ist, während 1 auch nicht als Primzahl betrachtet wird:

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

Die Menge der perfekten Quadrate (<20) ist nicht disjunkt von der Menge der zusammengesetzten Zahlen (<20), da alle perfekten Quadrate, die nicht 1 sind, per Definition zusammengesetzte Zahlen sind:

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

Spezifikationen

Specification
Set methods
# sec-set.prototype.isdisjointfrom

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch