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 Analyse von MySQL-Datenbanktransaktionen und -Sperren

Inhaltsverzeichnis 1. Grundlegende Konzepte SÄURE...

So ändern Sie den Punkt im WeChat-Applet Swiper-Dot in einen Slider

Inhaltsverzeichnis Hintergrund Zieleffekt Ideen e...

Detaillierte Erläuterung des MySQL-Indexprinzips und der Abfrageoptimierung

Inhaltsverzeichnis 1. Einleitung 1. Was ist ein I...

Inhaltstypbeschreibung, d. h. der Typ des HTTP-Anforderungsheaders

Um den Inhaltstyp zu lernen, müssen Sie zunächst ...

CSS implementiert die Bottom-Tapbar-Funktion

Viele Mobiltelefone verfügen mittlerweile über di...

Einfache Verwendung von temporären MySQL-Tabellen

Temporäre MySQL-Tabellen sind sehr nützlich, wenn...

JavaScript-Sandbox-Erkundung

Inhaltsverzeichnis 1. Szenario 2. Grundfunktionen...

So verwenden Sie Node zum Implementieren des statischen Datei-Cachings

Inhaltsverzeichnis Cache Klassifizierung des Cach...

Vue verwendet Canvas-Handschrifteingabe, um Chinesisch zu erkennen

Effektbild: Vorwort: Kürzlich arbeitete ich an ei...

Tutorial zu HTML-Tabellen-Tags (34): Zeilenspannen-Attribut ROWSPAN

In einer komplexen Tabellenstruktur erstrecken si...

Codeanalyse von Benutzervariablen in MySQL-Abfrageanweisungen

Im vorherigen Artikel haben wir die MySQL-Optimie...

Analyse des Quellcodes des React-Ereignismechanismus

Inhaltsverzeichnis Prinzip Quellcodeanalyse Deleg...