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 June 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 isDisjointFrom() Methode von Set Instanzen nimmt eine Menge und gibt einen Booleschen Wert zurück, der anzeigt, ob diese Menge keine gemeinsamen Elemente mit der gegebenen Menge hat.

Syntax

js
isDisjointFrom(other)

Parameter

other

Ein Set Objekt oder set-ähnliches Objekt.

Rückgabewert

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

Beschreibung

Zwei Mengen sind 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 mit dem Venn-Diagramm:

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

isDisjointFrom() akzeptiert set-ä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 dass Benutzercode aufgerufen wird. Anschließend hängt das Verhalten von der Größe von this und other ab:

  • Wenn es mehr Elemente in this gibt als other.size, durchläuft es 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, indem es dessen return() Methode aufruft). Andernfalls gibt es true zurück.
  • Andernfalls durchläuft es die Elemente in this und gibt false zurück, wenn irgendein Element e in this verursacht, 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 unterlinearer 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 in das Produkt zweier ganzer Zahlen zerlegbar ist, während 1 auch nicht als Primzahl angesehen 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 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

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

Browser-Kompatibilität

Siehe auch