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 eine Menge und gibt eine neue Menge zurück, die Elemente enthält, die sowohl in dieser Menge als auch in der gegebenen Menge vorhanden 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 dieser Menge als auch in der other Menge vorhanden sind.

Beschreibung

In mathematischer Notation ist die 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. Die Schnittmenge von A und B ist der Bereich, in dem sie sich überlappen.

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

  • Wenn mehr Elemente in this als other.size vorhanden sind, wird other durch Aufrufen seiner keys() Methode iteriert, und eine neue Menge wird mit allen produzierten Elementen konstruiert, die auch in this vorhanden sind.
  • Andernfalls wird über die Elemente in this iteriert und eine neue Menge wird mit allen Elementen e in this konstruiert, für die 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 Mengen in sublinearer Zeit zugänglich sind). Die Reihenfolge der Elemente in der zurückgegebenen Menge ist dieselbe wie die der kleineren Menge von this und other.

Beispiele

Verwendung von intersection()

Im folgenden Beispiel wird die Schnittmenge zwischen der Menge der ungeraden Zahlen (<10) und der Menge der perfekten Quadrate (<10) berechnet. 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

BCD tables only load in the browser

Siehe auch