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 Methode intersection() für Instanzen von Set nimmt eine Menge und gibt eine neue Menge zurück, die Elemente enthält, die sowohl in diesem Set als auch im übergebenen Set vorhanden sind.

Syntax

js
intersection(other)

Parameter

other

Ein Set-Objekt oder ein set-artiges 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 der mathematischen Notation ist Schnittmenge definiert als:

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

Und mit einem Venn-Diagramm:

Ein Venn-Diagramm, bei dem sich zwei Kreise überlappen. Der Schnittpunkt von A und B ist der Teil, an dem sie sich überlappen.

intersection() akzeptiert set-artige Objekte als other Parameter. Es erfordert, dass this eine tatsächliche Set-Instanz ist, da es direkt die zugrunde liegenden Daten in this abrufen kann, ohne Benutzercode aufzurufen. Dann hängt sein Verhalten von der Größe von this und other ab:

  • Wenn es mehr Elemente in this als in other.size gibt, iteriert es über other, indem es seine keys()-Methode aufruft, und konstruiert ein neues Set mit allen erzeugten Elementen, die auch in this vorhanden sind.
  • Andernfalls iteriert es über die Elemente in this und konstruiert ein neues Set mit allen Elementen e in this, bei denen other.has(e) einen truthy Wert zurückgibt.

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

Beispiele

Verwendung von intersection()

Das folgende Beispiel berechnet die Schnittmenge zwischen der Menge der ungeraden Zahlen (<10) und der Menge der perfekten Quadratzahlen (<10). Das Ergebnis ist die Menge der ungeraden 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

Siehe auch