Set.prototype.intersection()
Baseline 2024Newly 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
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:
Und mit einem Venn-Diagramm:
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 inother.size
gibt, iteriert es überother
, indem es seinekeys()
-Methode aufruft, und konstruiert ein neues Set mit allen erzeugten Elementen, die auch inthis
vorhanden sind. - Andernfalls iteriert es über die Elemente in
this
und konstruiert ein neues Set mit allen Elementene
inthis
, bei denenother.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.
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 |