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
Inhaltsverzeichnis Vorwort wissen Übung macht den...
Um die Anforderungen effizient zu erfüllen und au...
Klicken Sie auf den Ankerlink, um reibungslos zu ...
Das Unternehmen hat vor Kurzem einige CCFA-Aktivi...
Inhaltsverzeichnis 1. mysqldump-Befehl zum Sicher...
1. Erstellen Sie die MySQL-Datenbank nacos_config...
PS: Ich verwende hier PHPStudy2016 1. Stoppen Sie...
Übersicht über die MySQL-Speicher-Engine Was ist ...
Wenn Sie beim Erstellen einer Webseite eine besti...
1. Was ist Docker? Jeder kennt virtuelle Maschine...
Inhaltsverzeichnis 1. Einführung in Sysbench #Pro...
Inhaltsverzeichnis Einführung Untergeordneter Pro...
Der Unterschied zwischen Ausführen und Starten in...
Skriptanforderungen: Sichern Sie die MySQL-Datenb...
Inhaltsverzeichnis Überblick 1. Kompositions-API ...