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
Heute werde ich mit Ihnen über das Löschen von Fl...
SQLyog stellt eine Verbindung zu MySQL her, Fehle...
(I) Grundkonzepte der Farbabstimmung auf Webseiten...
1. Was ist die Kardinalität? Mit Kardinalität wir...
Inhaltsverzeichnis Erste Schritte Datenspeicherun...
Linux-Befehl „col“ Der Linux-Befehl col wird zum ...
.NET SDK-Download-Link https://dotnet.microsoft.c...
Aus einer Laune heraus habe ich eine Fallstudie ü...
Vor einiger Zeit stieß ich während der Entwicklun...
Inhaltsverzeichnis Problembeschreibung Prinzipana...
Vorwort: Als Gigant in der IT-Branche ist Microso...
1. Einführung in Gitlab Offizielle Gitlab-Adresse...
Inhaltsverzeichnis Installieren Sie MySQL Konfigu...
Dieser Artikel stellt die Blue-Green-Bereitstellu...
1. Was ist In react Anwendungen werden Ereignisna...