Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Set.prototype.isDisjointFrom()

Baseline 2024
Neu verfügbar

Seit Juni 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Die Methode isDisjointFrom() von Set-Instanzen nimmt eine Menge entgegen und gibt einen booleschen Wert zurück, der angibt, ob diese Menge keine gemeinsamen Elemente mit der übergebenen 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 Menge other hat, andernfalls false.

Beschreibung

Zwei Mengen sind disjunkt, wenn sie keine gemeinsamen Elemente haben. In mathematischer Schreibweise:

A ist disjunkt zu B⇔A∩B=∅A\text{ ist disjunkt zu }B \Leftrightarrow A\cap B = \empty

Als Venn-Diagramm:

Ein Venn-Diagramm mit zwei Kreisen. A und B sind disjunkt, weil sich die Kreise nicht überlappen.

isDisjointFrom() akzeptiert Set-ähnliche Objekte als Parameter other. this muss eine tatsächliche Set-Instanz sein, da die Methode direkt auf die in this gespeicherten Daten zugreift, ohne benutzerdefinierten Code aufzurufen. Das weitere Verhalten hängt von der Größe von this und other ab:

  • Wenn this mehr Elemente enthält als durch other.size angegeben, durchläuft die Methode other, indem sie dessen Methode keys() aufruft. Ist ein Element von other in this enthalten, gibt sie false zurück (und schließt den keys()-Iterator durch Aufruf seiner Methode return()). Andernfalls gibt sie true zurück.
  • Andernfalls durchläuft sie die Elemente von this und gibt false zurück, wenn für ein Element e aus this der Aufruf other.has(e) einen truthy Wert zurückgibt. Andernfalls gibt sie true zurück.

Aufgrund dieser Implementierung hängt die Effizienz von isDisjointFrom() hauptsächlich von der Größe der kleineren der beiden Mengen this und other ab (vorausgesetzt, der Zugriff auf Mengen ist in sublinearer Zeit möglich).

Beispiele

isDisjointFrom() verwenden

Die Menge der Quadratzahlen (<20) ist disjunkt zur Menge der Primzahlen (<20), da sich eine Quadratzahl definitionsgemäß als Produkt zweier ganzer Zahlen darstellen lässt und 1 ebenfalls 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 der Quadratzahlen (<20) ist nicht disjunkt zur Menge der zusammengesetzten Zahlen (<20), da alle Quadratzahlen außer 1 definitionsgemäß 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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-set.prototype.isdisjointfrom

Browser-Kompatibilität

Siehe auch