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

40 CSS/JS-Stil und funktionale technische Verarbeitung

1- Dropdown-Auswahlfelder gestalten – Ändern Sie ...

Detaillierte Erklärung der Prinzipien des responsiven Systems von Vue

Inhaltsverzeichnis Die Grundprinzipien des respon...

Frage zur Webseitenerstellung: Bilddateipfad

Dieser Artikel stammt ursprünglich von 123WORDPRE...

So verwenden Sie Dockerfile zum Erstellen von Images in Docker

Erstellen des Images Früher haben wir verschieden...

Eine ausführliche Diskussion zur Detailanalyse im Webdesign

Bei der Designarbeit höre ich oft, dass an der Übe...

Einige Parameterbeschreibungen von Texteingabefeldern im Webdesign

<br />In Gästebüchern, Foren und anderen Ort...

Anwendung schöner Stylesheets bei der Erstellung von XHTML+CSS-Webseiten

Dies ist ein Artikel, der vor langer Zeit geschrie...

Docker View JVM-Speichernutzung

1. Rufen Sie den Hostcomputer des Docker-Containe...