Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Set.prototype.intersection()

Baseline 2024
Neu verfügbar

Seit June 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Die intersection()-Methode von Set-Instanzen nimmt eine Menge und gibt eine neue Menge zurück, die Elemente sowohl in dieser Menge als auch in der angegebenen Menge enthält.

Syntax

js
intersection(other)

Parameter

other

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

Rückgabewert

Ein neues Set-Objekt, das Elemente sowohl in dieser Menge als auch in der other-Menge enthält.

Beschreibung

In mathematischer 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, in dem sich zwei Kreise überlappen. Die Schnittmenge von A und B ist der Teil, 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 speichert, die in this gespeichert sind, ohne Benutzercode aufzurufen. Dann hängt sein Verhalten von der Größe von this und other ab:

  • Wenn es in this mehr Elemente gibt als other.size, dann iteriert es über other durch Aufruf der keys()-Methode und erstellt eine neue Menge mit allen erzeugten Elementen, die auch in this vorhanden sind.
  • Andernfalls iteriert es über die Elemente in this und erstellt eine neue Menge mit allen Elementen e in this, die other.has(e) dazu veranlassen, einen truthy Wert zurückzugeben.

Aufgrund dieser Implementierung hängt die Effizienz von intersection() hauptsächlich von der Größe der kleineren Menge zwischen this und other (unter der Annahme, dass auf Mengen in sublinearer Zeit zugegriffen werden kann) ab. Die Reihenfolge der Elemente in der zurückgegebenen Menge ist die gleiche wie bei der 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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-set.prototype.intersection

Browser-Kompatibilität

Siehe auch