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
isDisjointFrom(other)
Parameter
other-
Ein
SetObjekt 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:
Und mit dem Venn-Diagramm:
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
thisgibt alsother.size, durchläuft esotherdurch Aufruf derkeys()Methode, und wenn irgendein Element inotherinthisvorhanden ist, gibt esfalsezurück (und schließt denkeys()Iterator, indem es dessenreturn()Methode aufruft). Andernfalls gibt estruezurück. - Andernfalls durchläuft es die Elemente in
thisund gibtfalsezurück, wenn irgendein Elementeinthisverursacht, dassother.has(e)einen truthy Wert zurückgibt. Andernfalls gibt estruezurü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:
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:
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> |