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

Syntax

js
symmetricDifference(other)

Parameter

other

Ein Set-Objekt oder ein mengenähnliches Objekt.

Rückgabewert

Ein neues Set-Objekt, das Elemente enthält, die entweder in dieser Menge oder in der other-Menge, aber nicht in beiden sind.

Beschreibung

In mathematischer Notation wird symmetrische Differenz definiert als:

AB=(AB)(BA)A\ominus B = (A\setminus B)\cup(B\setminus A)

Und unter Verwendung eines Venn-Diagramms:

Ein Venn-Diagramm, bei dem sich zwei Kreise überlappen. Die symmetrische Differenz von A und B ist der Bereich, der entweder von einem Kreis, aber nicht von beiden, abgedeckt wird.

symmetricDifference() akzeptiert mengenähnliche Objekte als das other-Argument. Es erfordert, dass this eine tatsächliche Set-Instanz ist, da es direkt auf die zugrunde liegenden Daten zugreift, die in this gespeichert sind, ohne Benutzercode aufzurufen. Es durchläuft dann other durch Aufruf seiner keys()-Methode und konstruiert eine neue Menge mit allen Elementen in this, die in other nicht vorhanden sind, und allen Elementen in other, die in this nicht vorhanden sind.

Die Reihenfolge der Elemente in der zurückgegebenen Menge ist zuerst die in this, gefolgt von denen in other.

Beispiele

Verwendung von symmetricDifference()

Im folgenden Beispiel wird die symmetrische Differenz zwischen der Menge der geraden Zahlen (<10) und der Menge der perfekten Quadrate (<10) berechnet. Das Ergebnis ist die Menge der Zahlen, die entweder gerade oder ein perfektes Quadrat 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