js implementiert Array-Abflachung

js implementiert Array-Abflachung

So reduzieren Sie ein Array

Was ist Array-Flattening?

Array-Abflachung : bezieht sich auf die Konvertierung eines mehrdimensionalen Arrays in ein eindimensionales Array.

Beispiel: Reduzieren Sie das folgende Array.

const arr = [1, [2, 3, [4, 5]]] // ---> [ 1, 2, 3, 4, 5 ]

1. Verwenden von flat()

Die Methode flat() wurde von ES10 vorgeschlagen. Sie durchläuft das Array rekursiv in einer angegebenen Tiefe, fügt alle Elemente mit den Elementen im durchlaufenen Unterarray zu einem neuen Array zusammen und gibt es zurück. (flach bedeutet „horizontal; flach“)

const result1 = arr.flat(Infinity) // gibt die Tiefe als unendlich an console.log(result1) // [ 1, 2, 3, 4, 5 ]
const result2 = arr.flat(1) // Tiefe als 1 angeben
console.log(Ergebnis2) // [ 1, 2, 3, [ 4, 5 ] ]
const result3 = arr.flat(2) // gibt die Tiefe auf 2 an
console.log(Ergebnis3) // [ 1, 2, 3, 4, 5 ]

2. Verwenden Sie reguläre Ausdrücke

Die mit den folgenden Methoden erhaltenen Array-Elemente werden in Zeichenfolgen konvertiert, was nicht empfohlen wird.

const result1 = JSON.stringify(arr).replace(/\[|\]/g, '').split(',')
console.log(result1) // [ '1', '2', '3', '4', '5' ] Array-Elemente werden in Strings umgewandelt

Optimieren Sie die oben genannten Methoden;

const result2 = JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g, '') + ']')
console.log(Ergebnis2) // [ 1, 2, 3, 4, 5 ]

3. Verwenden Sie reduce()+concat()

Verwenden Sie „Reduce“, um den aktuellen und den vorherigen Wert des Arrays abzurufen, bestimmen Sie, ob der aktuelle Wert ein Array ist, setzen Sie den Anfangswert auf [] und verwenden Sie dann „Concat“, um die Arrays zusammenzuführen.

  • Methode „reduce()“: Führt eine von Ihnen bereitgestellte Reduzierungsfunktion für jedes Element im Array (in aufsteigender Reihenfolge) aus und fasst die Ergebnisse in einem einzigen Rückgabewert zusammen.
  • concat()-Methode: wird zum Zusammenführen von zwei oder mehr Arrays verwendet. Diese Methode verändert das vorhandene Array nicht, sondern gibt ein neues Array zurück.
Funktion flatten(arr) {
  return arr.reduce((vorher, aktuell) => {
    returniere pre.concat(Array.isArray(aktuell) ? flatten(aktuell) : aktuell)
  }, [])
}
const Ergebnis = flatten(arr)
console.log(Ergebnis) // [ 1, 2, 3, 4, 5 ]

4. Verwenden Sie Funktionsrekursion

Durchlaufen Sie das Array, verarbeiten Sie es rekursiv, wenn es Array-Elemente enthält, und konvertieren Sie das Array schließlich in ein eindimensionales Array.

const Ergebnis = []
Funktion exec(arr) {
  arr.fürJeden(Element => {
    wenn (Array.isArray(item)) {
      exec(Element)
    } anders {
      Ergebnis.push(Element)
    }
  })
}
exec(arr)
console.log(Ergebnis) // [ 1, 2, 3, 4, 5 ]

5. Verwenden Sie den Spread-Operator + concat()

Der neue Spread-Operator, der in ES6 eingeführt wurde, kann die Dimension eines Arrays reduzieren (jeweils eine Dimension), in einer Schleife ermitteln, ob es ein Array enthält, und eine Concat-Zusammenführung durchführen.

some()-Methode: Testet, ob es im Array mindestens ein Element gibt, das den bereitgestellten Funktionstest besteht (es gibt einen booleschen Wert zurück).

Funktion flatten(arr) {
  während (arr.some(item => Array.isArray(item))) {
    arr = [].concat(...arr)
  }
  Rückflug an
}
const Ergebnis = flatten(arr)
console.log(Ergebnis) // [ 1, 2, 3, 4, 5 ]

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können!

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
  • Detaillierte Erklärung zur JavaScript-Datenabflachung
  • JavaScript-Interview: So implementieren Sie die Methode zur Array-Abflachung
  • 5 JavaScript-Möglichkeiten zum Abflachen von Arrays
  • Einführung in JavaScript-Array-Deduplizierungs- und -Flatteningfunktionen

<<:  Detaillierte Erklärung zum schnellen Erstellen einer Blog-Website mit Docker

>>:  Wie kann MySQL das Löschen und Weglaufen von Datenbanken wirksam verhindern?

Artikel empfehlen

So schreiben Sie Konfigurationsdateien und verwenden MyBatis einfach

So schreiben Sie Konfigurationsdateien und verwen...

Kopieren von JS-Objekten (Deep Copy und Shallow Copy)

Inhaltsverzeichnis 1. Oberflächliche Kopie 1. Obj...

Die v-for-Direktive in Vue vervollständigt die Listendarstellung

Inhaltsverzeichnis 1. Listendurchlauf 2. Die Roll...

PageSpeed ​​Optimierung im Überblick

Ich glaube, dass das Internet zu einem immer unve...

Vue3 kapselt seine eigene Paging-Komponente

In diesem Artikelbeispiel wird der spezifische Co...

Sicherheitsüberlegungen zur Windows-Serververwaltung

Webserver 1. Der Webserver schaltet unnötige IIS-...

Docker-Grundlagen-Tutorial: Detaillierte Erklärung der Dockerfile-Syntax

Vorwort Dockerfile ist ein vom Docker-Programm in...

HTML-Multimediaanwendung: Einfügen von Flash-Animationen und Musik in Webseiten

1. Anwendung von Multimedia in HTML_Flash-Animati...