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 ein Set und gibt ein neues Set zurück, das Elemente enthält, die in diesem Set, aber nicht im angegebenen Set enthalten sind.
Syntax
difference(other)
Parameter
other
-
Ein
Set
Objekt oder ein set-artiges Objekt.
Rückgabewert
Ein neues Set
Objekt, das Elemente enthält, die in diesem Set, aber nicht im other
Set enthalten sind.
Beschreibung
In der mathematischen Notation ist Differenz definiert als:
Und unter Verwendung eines Venn-Diagramms:
difference()
akzeptiert set-artige Objekte als other
Parameter. Es erfordert, dass this
eine tatsächliche Set
Instanz ist, da es direkt die zugrunde liegenden Daten in this
abruft, ohne benutzergenerierten Code auszuführen. Dann hängt sein Verhalten von der Größe von this
und other
ab:
- Wenn es mehr Elemente in
this
gibt alsother.size
, iteriert es überother
, indem es dessenkeys()
Methode aufruft, und erstellt ein neues Set mit allen Elementen inthis
, die nicht inother
vorkommen. - Andernfalls iteriert es über die Elemente in
this
und erstellt ein neues Set mit allen Elementene
inthis
, dieother.has(e)
einen falsy Wert zurückgeben lassen.
Die Reihenfolge der Elemente im zurückgegebenen Set 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 |