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:

AB={xAxB}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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
intersection

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch