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 mengenähnliches Objekt.

Rückgabewert

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

Beschreibung

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

A disjunkt zu BAB=A\text{ is disjoint from }B \Leftrightarrow A\cap B = \empty

Und mittels Venn-Diagramm:

Ein Venn-Diagramm mit zwei Kreisen. A und B sind disjunkt, weil die Kreise keinen Überlappungsbereich haben.

isDisjointFrom() akzeptiert mengenähnliche Objekte als other Parameter. Es erfordert, dass this eine tatsächliche Set Instanz ist, da es direkt die zugrunde liegenden Daten in this abruft, ohne Benutzercode 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, iteriert es über other durch Aufruf der keys() Methode, und wenn irgendein Element in other in this vorhanden ist, gibt es false zurück (und schließt den keys() Iterator durch Aufruf der return() Methode). Andernfalls gibt es true zurück.
  • Andernfalls iteriert es über die Elemente in this und gibt false zurück, wenn irgendein 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 (unter der Annahme, dass Mengen in sublinearer Zeit abgerufen werden können).

Beispiele

Verwendung von isDisjointFrom()

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

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 perfekter Quadrate (<20) ist nicht disjunkt zur Menge der zusammengesetzten Zahlen (<20), da alle nicht-1 perfekten Quadrate 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

Siehe auch