Set.prototype.difference()
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 difference()
-Methode von Set
-Instanzen nimmt eine Menge und gibt eine neue Menge zurück, die Elemente enthält, die sich in dieser Menge befinden, aber nicht in der angegebenen Menge.
Syntax
difference(other)
Parameter
other
-
Ein
Set
-Objekt oder ein mengenähnliches Objekt.
Rückgabewert
Ein neues Set
-Objekt, das Elemente enthält, die sich in dieser Menge befinden, aber nicht in der other
-Menge.
Beschreibung
In mathematischer Notation wird Differenz definiert als:
Und mit einem Venn-Diagramm:
difference()
akzeptiert mengenähnliche Objekte als den other
-Parameter. Es erfordert, dass this
eine tatsächliche Set
-Instanz ist, da es direkt auf die zugrunde liegenden Daten in this
zugreift, ohne benutzerdefinierten Code auszuführen. Dann hängt sein Verhalten von den Größen von this
und other
ab:
- Wenn es mehr Elemente in
this
alsother.size
gibt, iteriert es überother
, indem es seinekeys()
-Methode aufruft, und erstellt eine neue Menge mit allen Elementen inthis
, die nicht inother
gefunden werden. - Andernfalls iteriert es über die Elemente in
this
und erstellt eine neue Menge mit allen Elementene
inthis
, die dazu führen, dassother.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 ungerader 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 |