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.symmetricDifference()

Baseline 2024
Neu verfügbar

Seit Juni 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 Methode symmetricDifference() von Set-Instanzen nimmt eine Menge entgegen und gibt eine neue Menge zurück, die alle Elemente enthält, die entweder in dieser Menge oder in der übergebenen Menge vorkommen, aber nicht in beiden.

Syntax

js
symmetricDifference(other)

Parameter

other

Ein Set-Objekt oder ein set-artiges Objekt.

Rückgabewert

Ein neues Set-Objekt mit den Elementen, die entweder in dieser Menge oder in der Menge other vorkommen, aber nicht in beiden.

Beschreibung

In der mathematischen Notation ist die symmetrische Differenz wie folgt definiert:

A⊖B=(A∖B)∪(B∖A)A\ominus B = (A\setminus B)\cup(B\setminus A)

Als Venn-Diagramm dargestellt:

Ein Venn-Diagramm mit zwei sich überschneidenden Kreisen. Die symmetrische Differenz von A und B ist der Bereich, der in einem der beiden Kreise liegt, aber nicht in beiden.

symmetricDifference() akzeptiert set-artige Objekte als Parameter other. this muss eine tatsächliche Set-Instanz sein, da die Methode direkt auf die in this gespeicherten Daten zugreift, ohne benutzerdefinierten Code aufzurufen. Anschließend durchläuft sie other, indem sie dessen Methode keys() aufruft, und erstellt eine neue Menge mit allen Elementen aus this, die nicht in other vorkommen, sowie allen Elementen aus other, die nicht in this vorkommen.

In der zurückgegebenen Menge stehen zuerst die Elemente aus this, gefolgt von denen aus other.

Beispiele

symmetricDifference() verwenden

Das folgende Beispiel berechnet die symmetrische Differenz zwischen der Menge der geraden Zahlen (<10) und der Menge der Quadratzahlen (<10). Das Ergebnis ist die Menge der Zahlen, die entweder gerade oder eine Quadratzahl sind, aber nicht beides.

js
const evens = new Set([2, 4, 6, 8]);
const squares = new Set([1, 4, 9]);
console.log(evens.symmetricDifference(squares)); // Set(5) { 2, 6, 8, 1, 9 }

Spezifikationen

Spezifikation
ECMAScript® 2027 Language Specification
# sec-set.prototype.symmetricdifference

Browser-Kompatibilität

Siehe auch