Set.prototype.difference()
Baseline 2024
Newly 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 difference()
-Methode von Set
-Instanzen nimmt eine Menge und gibt eine neue Menge zurück, die Elemente enthält, die in dieser Menge, aber nicht in der angegebenen Menge vorhanden sind.
Syntax
difference(other)
Parameter
other
-
Ein
Set
-Objekt oder ein mengenähnliches Objekt.
Rückgabewert
Ein neues Set
-Objekt, das Elemente enthält, die in dieser Menge, aber nicht in der other
-Menge vorhanden sind.
Beschreibung
In mathematischer Notation ist Differenz definiert als:
Und mit einem Venn-Diagramm dargestellt:
difference()
akzeptiert mengenähnliche Objekte als other
-Parameter. Es erfordert, dass this
eine tatsächliche Set
-Instanz ist, da es direkt auf die zugrunde liegenden Daten von this
zugreift, ohne benutzerdefinierten Code aufzurufen. Dann hängt sein Verhalten von den Größen von this
und other
ab:
- Wenn
this
mehr Elemente alsother.size
hat, iteriert es überother
, indem es dessenkeys()
-Methode aufruft, und erstellt eine neue Menge mit allen Elementen inthis
, die nicht inother
vorhanden sind. - Andernfalls iteriert es über die Elemente in
this
und erstellt eine neue Menge mit allen Elementene
inthis
, für dieother.has(e)
einen falsy Wert zurückgibt.
Die Reihenfolge der Elemente in der zurückgegebenen Menge entspricht der in this
.
Beispiele
Verwendung 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
Specification |
---|
Set methods # sec-set.prototype.difference |
Browser-Kompatibilität
BCD tables only load in the browser