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

Nginx-Signalsteuerung

Einführung in Nginx Nginx ist ein leistungsstarke...

Detaillierte Analyse der Verwendungs- und Anwendungsszenarien von Slots in Vue

Was sind Slots? Wir wissen, dass in Vue nichts in...

So beheben Sie den MySQL-Fehler 10061

In diesem Artikel erfahren Sie die Lösung für das...

Vue implementiert den Download von ZIP-Dateien

In diesem Artikelbeispiel wird der spezifische Co...

So erhalten/berechnen Sie den Offset eines Seitenelements mit JavaScript

Frage Durch Klicken auf ein Steuerelement wird ei...

Detaillierte Erläuterung der Beispiele für CSS-Gewichtswerte (Kaskadierung)

•Es gibt viele Selektoren in CSS. Was passiert, w...

Problemaufzeichnung bei der Verwendung des Vue+Echarts-Diagramms

Vorwort echarts ist mein am häufigsten verwendete...

Detailliertes Tutorial zum Erstellen eines privaten Git-Servers unter Linux

1. Server-Setup Das Remote-Repository unterscheid...

Detaillierte Erklärung zu Padding und Abkürzungen im CSS-Boxmodell

Wie oben gezeigt, sind Füllwerte zusammengesetzte...

Detaillierte Erklärung der JS-Array-Methoden

Inhaltsverzeichnis 1. Das ursprüngliche Array wir...