Set.prototype.difference()
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 difference() von Set-Instanzen nimmt eine Menge entgegen und gibt eine neue Menge zurück, die die Elemente dieser Menge enthält, die nicht in der übergebenen Menge enthalten sind.
Syntax
difference(other)
Parameter
other-
Ein
Set-Objekt oder ein set-artiges Objekt.
Rückgabewert
Ein neues Set-Objekt mit den Elementen dieser Menge, die nicht in der Menge other enthalten sind.
Beschreibung
In mathematischer Schreibweise ist die Differenz wie folgt definiert:
Als Venn-Diagramm dargestellt:
difference() akzeptiert set-artige 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 alsother.sizeenthält, durchläuft die Methodeotherdurch Aufruf von dessenkeys()-Methode und erstellt eine neue Menge mit allen Elementen austhis, die nicht inothervorkommen. - Andernfalls durchläuft sie die Elemente in
thisund erstellt eine neue Menge mit allen Elementeneausthis, für dieother.has(e)einen falsy-Wert zurückgibt.
Die Reihenfolge der Elemente in der zurückgegebenen Menge entspricht der Reihenfolge in this.
Beispiele
>difference() verwenden
Das folgende Beispiel berechnet die Differenz zwischen der Menge der ungeraden Zahlen (<10) und der Menge der Quadratzahlen (<10). Das Ergebnis ist die Menge der ungeraden Zahlen, die keine Quadratzahlen sind.
const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.difference(squares)); // Set(3) { 3, 5, 7 }
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-set.prototype.difference> |