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
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:
Und mit einem Venn-Diagramm:
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
thismehr Elemente gibt alsother.size, dann iteriert es überotherdurch Aufruf derkeys()-Methode und erstellt eine neue Menge mit allen erzeugten Elementen, die auch inthisvorhanden sind. - Andernfalls iteriert es über die Elemente in
thisund erstellt eine neue Menge mit allen Elementeneinthis, dieother.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.
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> |