Set.prototype.difference()
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 difference() Methode von Set Instanzen nimmt ein Set und gibt ein neues Set zurück, das Elemente aus diesem Set enthält, die nicht im angegebenen Set sind.
Syntax
difference(other)
Parameter
other-
Ein
SetObjekt oder set-ähnliches Objekt.
Rückgabewert
Ein neues Set Objekt, das Elemente aus diesem Set enthält, die nicht im other Set sind.
Beschreibung
In mathematischer Notation ist Differenz definiert als:
Und mit Venn-Diagramm:
difference() akzeptiert set-ähnliche Objekte als den other Parameter. Es erfordert, dass this eine tatsächliche Set Instanz ist, da es direkt auf die zugrundeliegenden Daten in this zugreift, ohne Benutzercode auszulösen. Dann hängt sein Verhalten von den Größen von this und other ab:
- Wenn es mehr Elemente in
thisalsother.sizegibt, dann iteriert es überother, indem es dessenkeys()Methode aufruft und ein neues Set mit allen Elementen inthiserstellt, die inothernicht gefunden werden. - Andernfalls iteriert es über die Elemente in
thisund erstellt ein neues Set mit allen Elementeneinthis, für dieother.has(e)einen falsy Wert zurückgibt.
Die Reihenfolge der Elemente im zurückgegebenen Set ist dieselbe wie in this.
Beispiele
>Nutzung von difference()
Das folgende Beispiel berechnet die Differenz zwischen der Menge der ungeraden Zahlen (<10) und der Menge der perfekten Quadrate (<10). Das Ergebnis ist die Menge der ungeraden Zahlen, die keine perfekten Quadrate 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> |