Set.prototype.symmetricDifference()
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 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 angegebenen Menge, aber nicht in beiden enthalten sind.
Syntax
symmetricDifference(other)
Parameter
other
-
Ein
Set
-Objekt oder 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 enthalten sind.
Beschreibung
In mathematischer Notation wird die symmetrische Differenz definiert als:
Und unter Verwendung eines Venn-Diagramms:
symmetricDifference()
akzeptiert mengenähnliche Objekte als other
-Parameter. Es erfordert, dass this
eine tatsächliche Set
-Instanz ist, da es die zugrundeliegenden Daten direkt aus this
abruft, ohne benutzerdefinierten Code auszuführen. Anschließend iteriert es über other
, indem es dessen keys()
-Methode aufruft, und konstruierte eine neue Menge mit allen Elementen in this
, die nicht in other
gesehen werden, und allen Elementen in other
, die nicht in this
gesehen werden.
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 von Zahlen, die entweder gerade oder ein perfektes Quadrat sind, aber nicht beides.
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 |