1. Konzept der Array-AbflachungUnter Array-Flattening versteht man die Konvertierung eines mehrdimensionalen Arrays in ein eindimensionales Array. [1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5] 2. Umsetzung1. Reduzieren Durchlaufen Sie jedes Element im Array. Wenn der Wert ein Array ist, führen Sie die Durchlauf rekursiv durch, andernfalls Funktion flatten(arr) { return arr.reduce((Ergebnis, Element)=> { Rückgabeergebnis.concat(Array.isArray(item) ? flatten(item) : item); }, []); }
// Finde die Summe der Werte im Array: arr.reduce((total, item)=> { // total ist das vorherige Berechnungsergebnis, item ist der Wert jedes Elements im Array return total + item; }, 0); 2. toString & teilen Rufen Sie die Funktion flatten(arr) { return arr.toString().split(',').map(Funktion(Element) { gib Nummer (Artikel) zurück; }) } Da jedes Element im nach der Aufteilung gebildeten Array ein String ist, wird eine Map-Methode benötigt, um das Array zu durchlaufen und jedes Element in einen numerischen Typ zu konvertieren. 3. Verbinden und Teilen Wie Funktion flatten(arr) { returniere arr.join(',').split(',').map(Funktion(Element) { gibt parseInt(Element) zurück; }) } 4. Rekursion Durchlaufe jedes Element rekursiv. Wenn es ein Array ist, fahre mit dem Durchlauf fort, andernfalls Funktion flatten(arr) { var res = []; arr.map(Element => { wenn(Array.isArray(item)) { res = res.concat(flatten(Element)); } anders { res.push(Element); } }); Rückgabewert; } 5. Spread-Operator Der Spread-Operator von [].concat(...[1, 2, 3, [4, 5]]); // [1, 2, 3, 4, 5] Basierend auf diesem Ergebnis können wir eine Traversierung durchführen. Wenn Funktion flatten(arr) { während(arr.some(item=>Array.isArray(item))) { arr = [].concat(...arr); } Rückflug an; } Zusammenfassen: Damit ist dieser Artikel über 5 Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der Lösung für das zu langsame Docker-Compose
Sie können eine Funktion schreiben: Verwenden Sie...
1- Dropdown-Auswahlfelder gestalten – Ändern Sie ...
Inhaltsverzeichnis Die Grundprinzipien des respon...
Dieser Artikel stammt ursprünglich von 123WORDPRE...
Erstellen des Images Früher haben wir verschieden...
Bei der Designarbeit höre ich oft, dass an der Übe...
1. Implementierungsprinzip des Nginx-Lastausgleic...
<br />In Gästebüchern, Foren und anderen Ort...
1. Einleitung Presto ist eine Open-Source-SQL-Abf...
Bei der Erstellung von Webseiten werden Eingabe un...
Dies ist ein Artikel, der vor langer Zeit geschrie...
Inhaltsverzeichnis 1. Gespeicherte Prozedur 1.1. ...
1. Entpacken Sie MySQL 5.7 2. Erstellen Sie eine ...
Nach drei Tagen voller Schwierigkeiten habe ich d...
1. Rufen Sie den Hostcomputer des Docker-Containe...