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

Eine kurze Diskussion über das Implementierungsprinzip von Webpack4-Plugins

Inhaltsverzeichnis Vorwort wissen Übung macht den...

Beispiel für eine Vue-Datenanzeige auf einem großen Bildschirm

Um die Anforderungen effizient zu erfüllen und au...

HTML realisiert Echtzeit-Überwachungsfunktion der Hikvision-Kamera

Das Unternehmen hat vor Kurzem einige CCFA-Aktivi...

So konfigurieren Sie MySQL8 in Nacos

1. Erstellen Sie die MySQL-Datenbank nacos_config...

Ändern Sie die MySQL-Datenbank-Engine in InnoDB

PS: Ich verwende hier PHPStudy2016 1. Stoppen Sie...

Detaillierte Erklärung der Speicher-Engine in MySQL

Übersicht über die MySQL-Speicher-Engine Was ist ...

Docker-Container vom Einstieg bis zur Obsession (empfohlen)

1. Was ist Docker? Jeder kennt virtuelle Maschine...

So erstellen Sie einen untergeordneten Prozess in nodejs

Inhaltsverzeichnis Einführung Untergeordneter Pro...

Der Unterschied zwischen Docker Run und Start

Der Unterschied zwischen Ausführen und Starten in...

mysql Backup-Skript und halten Sie es für 7 Tage

Skriptanforderungen: Sichern Sie die MySQL-Datenb...

Praktischer Bericht über die Entwicklung von Vue3- und TypeScript-Projekten

Inhaltsverzeichnis Überblick 1. Kompositions-API ...