Set.prototype.isDisjointFrom()
Baseline 2024Newly 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
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:
Und mittels Venn-Diagramm:
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
alsother.size
gibt, iteriert es überother
durch Aufruf derkeys()
Methode, und wenn irgendein Element inother
inthis
vorhanden ist, gibt esfalse
zurück (und schließt denkeys()
Iterator durch Aufruf derreturn()
Methode). Andernfalls gibt estrue
zurück. - Andernfalls iteriert es über die Elemente in
this
und gibtfalse
zurück, wenn irgendein Elemente
inthis
dazu führt, dassother.has(e)
einen truthy Wert zurückgibt. Andernfalls gibt estrue
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:
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:
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 |