5 JavaScript-Möglichkeiten zum Abflachen von Arrays

5 JavaScript-Möglichkeiten zum Abflachen von Arrays

1. Konzept der Array-Abflachung

Unter Array-Flattening versteht man die Konvertierung eines mehrdimensionalen Arrays in ein eindimensionales Array.

[1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5]

2. Umsetzung

1. Reduzieren

Durchlaufen Sie jedes Element im Array. Wenn der Wert ein Array ist, führen Sie die Durchlauf rekursiv durch, andernfalls concat .

Funktion flatten(arr) {  
    return arr.reduce((Ergebnis, Element)=> {
        Rückgabeergebnis.concat(Array.isArray(item) ? flatten(item) : item);
    }, []);
}

reduce ist eine Array-Methode, die eine Funktion als Akkumulator verwendet und sie für jeden Wert im Array (von links nach rechts) auf einen einzelnen Wert reduziert.
reduce enthält zwei Parameter: Callback-Funktion, der an total übergebene Anfangswert

// 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 toString -Methode des Arrays auf, um das Array in einen String umzuwandeln, und verwenden Sie dann split, um es wieder in ein Array aufzuteilen.

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 toString oben kann join auch ein Array in einen String umwandeln

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 concat

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 es6 kann ein zweidimensionales Array in ein eindimensionales Array umwandeln

[].concat(...[1, 2, 3, [4, 5]]); // [1, 2, 3, 4, 5]

Basierend auf diesem Ergebnis können wir eine Traversierung durchführen. Wenn arr ein Array enthält, verwenden wir den Erweiterungsoperator einmal, bis kein Array mehr vorhanden ist.

Funktion flatten(arr) {
    während(arr.some(item=>Array.isArray(item))) {
        arr = [].concat(...arr);
    }
    Rückflug an;
}

Zusammenfassen:

Damit ist dieser Artikel über 5 JavaScript Methoden zum Reduzieren eines Arrays abgeschlossen. Weitere Informationen zum Reduzieren eines Arrays mit JavaScript finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Details zur JS-Array-Deduplizierung
  • Detaillierte Diskussion mehrerer Methoden zur Deduplizierung von JavaScript-Arrays
  • Detaillierte Untersuchung des Problems der Array-Deduplizierung in JavaScript
  • JavaScript-Array-Deduplizierungslösung
  • js implementiert Array-Abflachung
  • Detaillierte Erklärung zur JavaScript-Datenabflachung
  • JavaScript-Interview: So implementieren Sie die Methode zur Array-Abflachung
  • Einführung in JavaScript-Array-Deduplizierungs- und -Flatteningfunktionen

<<:  Detaillierte Erklärung der Lösung für das zu langsame Docker-Compose

>>:  Eine kurze Diskussion über die Unterschiede und eine Zusammenfassung der drei Gleitkommatypen Float, Double und Decimal in MySQL

Artikel empfehlen

CSS Clear Float Clear:Both Beispielcode

Heute werde ich mit Ihnen über das Löschen von Fl...

MySQL-Fehlernummer 1129 – Lösung

SQLyog stellt eine Verbindung zu MySQL her, Fehle...

Einfaches Webdesign-Konzept – Farbabstimmung

(I) Grundkonzepte der Farbabstimmung auf Webseiten...

Eine kurze Analyse der MySQL-Kardinalitätsstatistiken

1. Was ist die Kardinalität? Mit Kardinalität wir...

So stellen Sie Redis schnell als Docker-Container bereit

Inhaltsverzeichnis Erste Schritte Datenspeicherun...

27 Linux-Befehle zum Bearbeiten von Dokumenten, die es wert sind, gesammelt zu werden

Linux-Befehl „col“ Der Linux-Befehl col wird zum ...

Installieren Sie .NET 6.0 im CentOS-System mithilfe eines Cloud-Servers

.NET SDK-Download-Link https://dotnet.microsoft.c...

Natives JS zur Realisierung eines springenden Balls

Aus einer Laune heraus habe ich eine Fallstudie ü...

So fügen Sie einem Hintergrundbild in CSS3 eine Farbmaske hinzu

Vor einiger Zeit stieß ich während der Entwicklun...

Einführung, Installation und Verwendung von Hyper-V (detaillierte Abbildungen)

Vorwort: Als Gigant in der IT-Branche ist Microso...

So verwenden Sie Nginx zum Simulieren der Canary-Freigabe

Dieser Artikel stellt die Blue-Green-Bereitstellu...

Detaillierte Erklärung der React-Ereignisbindung

1. Was ist In react Anwendungen werden Ereignisna...