Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
difference(other)

Parameter

other

Ein Set Objekt 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:

AB={xAxB}A\setminus B = \{x\in A\mid x\notin B\}

Und mit Venn-Diagramm:

Ein Venn-Diagramm, in dem sich zwei Kreise überschneiden. Die Differenz von A und B ist der Teil von A, der sich nicht mit B überschneidet.

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 this als other.size gibt, dann iteriert es über other, indem es dessen keys() Methode aufruft und ein neues Set mit allen Elementen in this erstellt, die in other nicht gefunden werden.
  • Andernfalls iteriert es über die Elemente in this und erstellt ein neues Set mit allen Elementen e in this, für die other.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.

js
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

Browser-Kompatibilität

Siehe auch