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 intersection()
Methode von Set
Instanzen nimmt eine Menge und gibt eine neue Menge zurück, die Elemente enthält, die sowohl in dieser Menge als auch in der gegebenen Menge vorhanden 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 dieser Menge als auch in der other
Menge vorhanden sind.
Beschreibung
In mathematischer Notation ist die 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 abruft, die in this
gespeichert sind, ohne benutzerdefinierten Code aufzurufen. Dann hängt das Verhalten von den Größen von this
und other
ab:
- Wenn mehr Elemente in
this
alsother.size
vorhanden sind, wirdother
durch Aufrufen seinerkeys()
Methode iteriert, und eine neue Menge wird mit allen produzierten Elementen konstruiert, die auch inthis
vorhanden sind. - Andernfalls wird über die Elemente in
this
iteriert und eine neue Menge wird mit allen Elementene
inthis
konstruiert, für dieother.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 Mengen in sublinearer Zeit zugänglich sind). Die Reihenfolge der Elemente in der zurückgegebenen Menge ist dieselbe wie die der kleineren Menge von this
und other
.
Beispiele
Verwendung von intersection()
Im folgenden Beispiel wird die Schnittmenge zwischen der Menge der ungeraden Zahlen (<10) und der Menge der perfekten Quadrate (<10) berechnet. 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 |
Browser-Kompatibilität
BCD tables only load in the browser