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 ein Set und gibt ein neues Set zurück, das Elemente enthält, die sowohl in diesem Set als auch im angegebenen Set enthalten sind.
Syntax
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 diesem Set als auch im other
-Set vorhanden sind.
Beschreibung
In mathematischer Notation wird Schnittmenge definiert als:
Und unter Verwendung eines Venn-Diagramms:
intersection()
akzeptiert set-ähnliche Objekte als other
-Parameter. Es erfordert, dass this
eine tatsächliche Set
-Instanz ist, da die zugrunde liegenden Daten direkt in this
abgerufen werden, ohne benutzerdefinierten Code aufzurufen. Dann hängt das Verhalten von den Größen von this
und other
ab:
- Wenn
this
mehr Elemente enthält alsother.size
, wirdother
durch Aufrufen seinerkeys()
-Methode iteriert, und ein neues Set wird mit allen erzeugten Elementen erstellt, die auch inthis
vorhanden sind. - Andernfalls wird über die Elemente von
this
iteriert, und ein neues Set wird mit allen Elementene
inthis
erstellt, dieother.has(e)
dazu bringen, einen wahrheitsgemäßen Wert zurückzugeben.
Aufgrund dieser Implementierung hängt die Effizienz von intersection()
hauptsächlich von der Größe des kleineren Sets zwischen this
und other
ab (vorausgesetzt, dass auf Sets in sublinearer Zeit zugegriffen werden kann). Die Reihenfolge der Elemente im zurückgegebenen Set entspricht der des 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
Specification |
---|
Set methods # sec-set.prototype.intersection |
Browser-Kompatibilität
BCD tables only load in the browser