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 sowohl aus dieser Menge als auch aus der übergebenen Menge enthält.
Syntax
intersection(other)
Parameter
other-
Ein
SetObjekt oder set-ähnliches Objekt.
Rückgabewert
Ein neues Set Objekt, das Elemente sowohl aus dieser Menge als auch aus der other Menge enthält.
Beschreibung
In mathematischer Notation ist intersection definiert als:
Und mithilfe eines Venn-Diagramms:
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 in this abruft, ohne Benutzercode aufzurufen. Anschließend hängt sein Verhalten von den Größen von this und other ab:
- Wenn mehr Elemente in
thisalsother.sizesind, wird überotheriteriert, indem dessenkeys()Methode aufgerufen wird, und eine neue Menge wird mit allen erzeugten Elementen erstellt, die auch inthisvorhanden sind. - Andernfalls wird über die Elemente in
thisiteriert, und eine neue Menge wird mit allen Elementeneinthiserstellt, die dazu führen, dassother.has(e)einen wahrheitsgemäßen 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 in der zurückgegebenen Menge entspricht der der kleineren der beiden Mengen, this und other.
Beispiele
>Verwendung von intersection()
Das folgende Beispiel berechnet die Schnittmenge zwischen der Menge ungerade 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
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-set.prototype.intersection> |
Browser-Kompatibilität
Loading…