Set.prototype.symmetricDifference()

Baseline 2024

Newly 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 symmetricDifference() Methode von Set Instanzen nimmt ein Set und gibt ein neues Set zurück, das Elemente enthält, die entweder in diesem Set oder dem angegebenen Set, aber nicht in beiden sind.

Syntax

js
symmetricDifference(other)

Parameter

other

Ein Set Objekt oder ein set-ähnliches Objekt.

Rückgabewert

Ein neues Set Objekt, das Elemente enthält, die entweder in diesem Set oder im other Set, aber nicht in beiden sind.

Beschreibung

In mathematischer Notation wird symmetrische Differenz definiert als:

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

Und unter Verwendung eines Venn-Diagramms:

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

symmetricDifference() akzeptiert set-ähnliche 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 Benutzercode aufzurufen. Dann iteriert es über other, indem es dessen keys() Methode aufruft, und erstellt ein neues Set 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 im zurückgegebenen Set ist zuerst die in this, gefolgt von denen in other.

Beispiele

Verwendung von symmetricDifference()

Das folgende Beispiel berechnet die symmetrische Differenz zwischen der Menge der geraden Zahlen (<10) und der Menge der perfekten Quadrate (<10). 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

Specification
Set methods
# sec-set.prototype.symmetricdifference

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch