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
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:
Als Venn-Diagramm:
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
thismehr Elemente enthält als durchother.sizeangegeben, durchläuft die Methodeother, indem sie dessen Methodekeys()aufruft. Ist ein Element vonotherinthisenthalten, gibt siefalsezurück (und schließt denkeys()-Iterator durch Aufruf seiner Methodereturn()). Andernfalls gibt sietruezurück. - Andernfalls durchläuft sie die Elemente von
thisund gibtfalsezurück, wenn für ein Elementeausthisder Aufrufother.has(e)einen truthy Wert zurückgibt. Andernfalls gibt sietruezurü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:
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:
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> |