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

Detaillierte Erläuterung der Verwaltung und Verwendung von Docker Secrets

1. Was ist Docker Secret 1. Szenariodarstellung W...

Zusammenfassung zum Erstellen und Verwenden von Array-Methoden in Bash-Skripten

Definieren eines Arrays in Bash Es gibt zwei Mögl...

Mounten Sie die Festplatte in einem Verzeichnis unter Ubuntu 18.04

Einführung In diesem Artikel wird beschrieben, wi...

Vollständiger Prozessdatensatz zur Fehlerbehebung bei MySQL DeadLock

【Autor】 Liu Bo: Leitender Datenbankmanager im Ctr...

Eine Frage zur Einstellung des Randradius-Werts

Problemdatensatz Heute wollte ich ein kleines Bau...

Detaillierte Erklärung der Ansichten in MySQL

Sicht: Ansichten in MySQL haben viele Ähnlichkeit...

Beispielcode zur Implementierung von Neon-Button-Animationseffekten mit CSS3.0

Heute zeige ich Ihnen einen Neon-Button-Animation...

5 einfache Möglichkeiten, Speicherplatz auf Ubuntu freizugeben

Vorwort Die meisten Benutzer führen diesen Vorgan...