Set.prototype.intersection()

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 intersection()-Methode von Set-Instanzen nimmt ein Set und gibt ein neues Set zurück, das Elemente enthält, die sowohl in diesem Set als auch im angegebenen Set enthalten sind.

Syntax

js
intersection(other)

Parameter

other

Ein Set-Objekt oder ein set-ähnliches Objekt.

Rückgabewert

Ein neues Set-Objekt, das Elemente enthält, die sowohl in diesem Set als auch im other-Set vorhanden sind.

Beschreibung

In mathematischer Notation wird Schnittmenge definiert als:

A B = { x A x B } A\cap B = \{x\in A\mid x\in B\}

Und unter Verwendung eines Venn-Diagramms:

Ein Venn-Diagramm, bei dem sich zwei Kreise überschneiden. Die Schnittmenge von A und B ist der Bereich, in dem sie sich überschneiden.

intersection() akzeptiert set-ähnliche Objekte als other-Parameter. Es erfordert, dass this eine tatsächliche Set-Instanz ist, da die zugrunde liegenden Daten direkt in this abgerufen werden, ohne benutzerdefinierten Code aufzurufen. Dann hängt das Verhalten von den Größen von this und other ab:

  • Wenn this mehr Elemente enthält als other.size, wird other durch Aufrufen seiner keys()-Methode iteriert, und ein neues Set wird mit allen erzeugten Elementen erstellt, die auch in this vorhanden sind.
  • Andernfalls wird über die Elemente von this iteriert, und ein neues Set wird mit allen Elementen e in this erstellt, die other.has(e) dazu bringen, einen wahrheitsgemäßen Wert zurückzugeben.

Aufgrund dieser Implementierung hängt die Effizienz von intersection() hauptsächlich von der Größe des kleineren Sets zwischen this und other ab (vorausgesetzt, dass auf Sets in sublinearer Zeit zugegriffen werden kann). Die Reihenfolge der Elemente im zurückgegebenen Set entspricht der des kleineren von this und other.

Beispiele

Verwendung von intersection()

Das folgende Beispiel berechnet die Schnittmenge zwischen der Menge ungerader Zahlen (<10) und der Menge perfekter Quadrate (<10). Das Ergebnis ist die Menge ungerader Zahlen, die perfekte Quadrate sind.

js
const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.intersection(squares)); // Set(2) { 1, 9 }

Spezifikationen

Specification
Set methods
# sec-set.prototype.intersection

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch