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
1. Bestätigen Sie, ob MySQL installiert wurde. Si...
[LeetCode] 182.Doppelte E-Mails Schreiben Sie ein...
Inhaltsverzeichnis JS erhält den Inhalt der TXT-D...
Inhaltsverzeichnis 1. Analyse der MySQL-Architekt...
Legen Sie in js fest, dass der Benutzer vor der Ü...
Letzte Woche gab mir der Lehrer eine kleine Hausa...
Die Funktion wurde schon vor langer Zeit implemen...
Die Bildintegrationstechnologie, die von YAHOO in...
Vorwort Die beste Methode ist möglicherweise nich...
Inhaltsverzeichnis Vorwort WebSocket verwenden Er...
Der benutzerdefinierte Kapselungscode der Vue-But...
In diesem Artikel wird der spezifische Code für J...
ModSecurity ist ein leistungsstarkes Paketfiltert...
Dieser Artikel entstand aus der Hausaufgabe „Erle...
Ich teile den gesamten Prozess in vier Schritte e...