Heim >Web-Frontend >Front-End-Fragen und Antworten >So erkennen Sie, ob zwei Arrays in es6 dieselben Elemente enthalten
Erkennungsschritte: 1. Konvertieren Sie beide Arrays in den Mengentyp, Syntax „new Set(arr)“ 2. Ermitteln Sie die Schnittmenge zweier Mengen, Syntax „new Set([...set1].filter(x=> ; set2.has(x)))“ werden die Schnittelemente in eine Set-Sammlung aufgenommen und zurückgegeben; 3. Konvertieren Sie die Set-Sammlung, die die Schnittelemente enthält, in einen Array-Typ, die Syntax lautet „Array.from(rse)“; 4. Beurteilung: Ob das Schnittarray ein leeres Array ist. Wenn ja, gibt es keine identischen Elemente, andernfalls gibt es identische Elemente.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.
Um zu erkennen, ob zwei Arrays dieselben Elemente enthalten, muss festgestellt werden, ob sich die beiden Arrays überschneiden.
Erkennungsidee:
Ermitteln Sie den Schnittpunkt zweier Arrays
, um festzustellen, ob der Schnittpunkt leer ist, gibt es keine identischen Elemente identische Artikel.
Implementierungsschritte:
1. Ermitteln Sie die Schnittmenge zweier Arrays
In es6 können Sie die has()-Methode des Set-Objekts in Verbindung mit der filter() des Arrays verwenden um den Schnittpunkt der beiden Array-Schnittpunkte zu finden.
Set ist eine neue von ES6 bereitgestellte Datenstruktur, die einem Array ähnelt, jedoch keine doppelten Werte aufweist. Mit dieser Funktion können wir das Array zur Deduplizierung in einen Set-Typ konvertieren und es dann mithilfe der Array.from-Methode erneut in ein Array konvertieren. Die Methode „Set has()“ gibt an, ob das Set-Objekt den angegebenen Wert enthält. Gibt true zurück, wenn der angegebene Wert vorhanden ist, andernfalls false.
Hinweis: Wenn Sie die Methode has() verwenden möchten, müssen Sie das Array zuerst in einen festgelegten Sammlungstyp konvertieren
let a=[1, 2, 3]; let b=[3, 5, 2]; newA = new Set(a); newB = new Set(b); let intersectionSet = new Set([...newA].filter(x => newB.has(x))); console.log(intersectionSet);
In es6 können Sie die Array.from-Methode verwenden, um eine Menge in einen Array-Typ umzuwandeln
Das Array. Die from-Methode wird verwendet, um zwei Arten von Objekten in echte Arrays zu konvertieren: Array-ähnliche Objekte und iterierbare Objekte (einschließlich der neuen Datenstrukturen Set und Map von ES6).
let intersectionSet = Array.from(new Set([...newA].filter(x => newB.has(x)))); console.log(intersectionSet);
3. Bestimmen Sie, ob das Schnittmengenarray ein leeres Array ist.
Wenn es sich um ein leeres Array handelt, gibt es keine identischen Elemente sind identische Elemente
Das obige ist der detaillierte Inhalt vonSo erkennen Sie, ob zwei Arrays in es6 dieselben Elemente enthalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!