Set..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..difference |