js konvertiert ein mehrdimensionales Array in ein eindimensionales Array und ordnet es dann neu

js konvertiert ein mehrdimensionales Array in ein eindimensionales Array und ordnet es dann neu

Organisieren Sie einige Methoden, falls Sie sie später vergessen und Ihre Notizen noch einmal durchsehen müssen

Lassen Sie uns zunächst über die Abflachung mehrdimensionaler Arrays sprechen

Methode 1: flat()

// Hier ist beispielsweise ein mehrdimensionales Array let arr = [1, 1, 2, [4, 2, [1, 3, [4, 2, 1]], 5], 2, 5, 3]
console.log(arr.flat(2)); // Anzahl der verschachtelten Ebenen angeben // Ausgabe [ 1, 1, 2, 4, 2, 1, 3, [ 4, 2, <1 leeres Element>, 1 ], 5, 2, 5, 3 ]

console.log(arr.flat(Infinity)); // Egal wie viele Verschachtelungsebenen es gibt, // Ausgabe: [ 1, 1, 2, 4, 2, 1, 3, 4, 2, 1, 5, 2, 5, 3 ]

Methode 2: Mit leeren Strings verketten und dann mit split() teilen

Faules Schreiben

// Immer noch dieses Array, let arr = [1, 1, 2, [4, 2, [1, 3, [4, 2, 1]], 5], 2, 5, 3]
// Wenn Zeichen mit anderen grundlegenden Datentypen verarbeitet werden, werden sie alle in Zeichen umgewandelt. Rufen Sie dann die Methode split () auf, um sie mit ,, zu teilen console.log((arr + '').split(','));
// Ausgabe ['1', '1', '2', '4', '2', '1', '3', '4', '2', '1', '5', '2', '5', '3']

// Die Ausgabe ist nicht sehr gut, lasst uns sie weiter optimieren // Wir verwenden weiterhin dieses Array let arr = [1, 1, 2, [4, 2, [1, 3, [4, 2, 1]], 5], 2, 5, 3]
lass newArr = (arr + '').split(',')
lass arr1 = []
newArr.forEach((Elemente) => {
    arr1.push(+items) // '+items' Datentyp konvertieren})
Konsole.log(arr1);
// Ausgabe [ 1, 1, 2, 4, 2, 1, 3, 4, 2, 1, 5, 2, 5, 3 ]

Methode 3: toString()

Da wir Arrays durch Berechnungen in Zeichentypen umwandeln können, erscheint die Verwendung von arr+' ' nicht so elegant. Zu diesem Zeitpunkt fiel mir plötzlich ein, dass das js Number-Objekt eine toString()-Methode hat.

Definition und Verwendung
Die Methode toString() konvertiert ein Number-Objekt in einen String und gibt das Ergebnis zurück.

sei arr = [1, 1, 2, [4, 2, [1, 3, [4, 2, 1]], 5], 2, 5, 3]
let newArr = arr.toString().split(',')
lass arr1 = []
newArr.forEach((Elemente) => {
    arr1.push(+Artikel)
})
Konsole.log(arr1);
// Ausgabe ['1', '1', '2', '4', '2', '1', '3', '4', '2', '1', '5', '2', '5', '3']

Methode 4: join()

Definition und Verwendung
Mit der Methode join() werden alle Elemente eines Arrays in einen String eingefügt.
Elemente werden durch das angegebene Trennzeichen getrennt.

Durch Aufruf der join()-Methode eines Arrays wird ein String zurückgegeben. Jedes Element in arr wird in einen String umgewandelt. Elemente können durch Übergabe eines Trennzeichens aneinandergereiht werden. Das Standardtrennzeichen ist ein Komma.

sei arr = [1, 1, 2, [4, 2, [1, 3, [4, 2, 1]], 5], 2, 5, 3]
lass newArr = arr.join().split(',')
console.log(neuerArr)
// Ausgabe ['1', '1', '2', '4', '2', '1', '3', '4', '2', '1', '5', '2', '5', '3']

Methode 5: Rekursiver Aufruf

Wenn wir über Rekursion sprechen, müssen wir fragen: Was ist Rekursion?
Die sogenannte rekursive Funktion besteht darin, die Funktion im Funktionskörper aufzurufen. Achten Sie bei der Verwendung von Rekursion darauf, tote Schleifen zu vermeiden.

Definition:
Eine rekursive Funktion ist eine Funktion, die sich selbst innerhalb ihres Körpers aufruft.
Achten Sie bei der Verwendung rekursiver Funktionen auf die Beendigungsbedingungen der Funktion, um Endlosschleifen zu vermeiden.

Die Rekursion sieht wahrscheinlich so aus:

Funktion a() {
    wenn (a <= 1) {
        Rückgabe 1
    } anders {
        gibt a * fn(a - 1) zurück
    }
}

Reduzieren Sie ein mehrdimensionales Array:

sei arr = [1, 1, 2, [4, 2, [1, 3, [4, 2, 1]], 5], 2, 5, 3]
lass newArr = []

lass fn = (arr) => {
    für (sei i = 0; i < arr.length; i++) {
        // Bestimmen Sie, ob der durchlaufene Wert noch immer ein Array ist, und fahren Sie mit der Durchquerung fort, wenn (Array.isArray(arr[i])) { // Verwenden Sie das Array Array.isArray(), um zu bestimmen, ob der übergebene Wert ein Array ist
            fn(arr[i])
            // Wenn der durchlaufene Wert kein Array ist, schiebe ihn in das neue Array newArr} else {
            newArr.push(arr[i])
        }
    }
}
fn(arr)
console.log(neuerArr);

Methode 6: Verwenden von „Reduce“

Diese Methode muss erlernt werden und wird später in Vue häufig verwendet.

reduzieren
Der erste Parameter: stellt den vorherigen Wert (Anfangswert) dar (vorherigerWert)
Der zweite Parameter: stellt den aktuellen Wert dar (currentValue)
Der dritte Parameter: stellt den aktuellen Indexwert dar (currentIndex)
Der vierte Parameter: stellt das aktuell durchlaufene Array dar

initialValue: Hier können Sie manuell einen Anfangswert zuweisen. Rückgabewert: Der Rückgabewert in der aktuellen Schleife kann als Initialisierung für die nächste Schleife verwendet werden.

const arr = [1, 1, 2, [4, 2, [1, 3, [4, 2, 1]], 5], 2, 5, 3]
const fn = (Array) => {
    returniere Array.Reduce((vorherige, aktuell) => {
        //Überprüfen, ob curr ein Array ist return prev.concat(Array.isArray(curr) ? fn(curr) : curr)
    }, [])
}
Konsole.log(fn(arr))

Array-Deduplizierung

Methode 1: Erstellen Sie ein neues Array und prüfen Sie, ob das Element im neuen Array vorhanden ist. Wenn nicht, fügen Sie das Element dem neuen Array hinzu.

const arr = [1, 1, 2, 4, 2, 1, 3, 4, 2, 1, 5, 2, 5, 3]
const fn = (arr) => {
    const neuerArr = []
    für (sei i = 0; i < arr.length; i++) {
        wenn (newArr.indexOf(arr[i]) == -1) {
            newArr.push(arr[i])
        }
    }
    returniere newArr
}
Konsole.log(fn(arr));

Methode 2: Verwenden Sie die Set-Methode

const arr = [1, 1, 2, 4, 2, 1, 3, 4, 2, 1, 5, 2, 5, 3]
// Mithilfe der von ES6 bereitgestellten Set-Datenstruktur sind die neuen Set-Mitglieder eindeutig. Anschließend werden die Daten erweitert und im Array gespeichert const newArr = [...new Set(arr)]
console.log(neuerArr);

// Alternativ können Sie die Methode Array.from() verwenden, um ein arrayähnliches Objekt oder ein traversierbares Objekt in ein echtes Array zu konvertieren.
const newArr = Array.from(neues Set(arr))
console.log(neuerArr);

Methode 3: Verwenden von filter()

const arr = [1, 1, 2, 4, 2, 1, 3, 4, 2, 1, 5, 2, 5, 3]
const newArr = arr.filter((value, index, array) => { // Übergebe drei Parameter, value, index und ursprüngliches Array, returniere array.indexOf(value) == index // indexOf gibt immer den Index des ersten Werts zurück. Der Index der nachfolgenden doppelten Werte ist nicht gleich der von indexOf zurückgegebenen Position und wird vom Filter herausgefiltert})
console.log(neuerArr);

Sortieren eines Arrays

Methode 1: Verwenden von sort()

Definition und Verwendung
Die Methode sort() wird zum Sortieren der Elemente eines Arrays verwendet.

Grammatik
arrayObject.sort(sortieren nach)

Rückgabewert: Eine Referenz auf das Array. Beachten Sie, dass das Array anhand des Original-Arrays sortiert wird und keine Kopien erstellt werden.

Beschreibung Wenn diese Methode ohne Parameter aufgerufen wird, werden die Elemente im Array in alphabetischer Reihenfolge oder genauer in der Reihenfolge der Zeichenkodierungen sortiert. Dazu müssen die Array-Elemente zunächst (sofern notwendig) in Strings umgewandelt werden, um diese vergleichen zu können.
Wenn Sie nach einem anderen Kriterium sortieren möchten, müssen Sie eine Vergleichsfunktion bereitstellen, die zwei Werte vergleicht und eine Zahl zurückgibt, die die relative Reihenfolge der beiden Werte beschreibt. Die Vergleichsfunktion sollte zwei Parameter a und b haben und den folgenden Wert zurückgeben:

Wenn a kleiner als b ist, sollte a im sortierten Array vor b erscheinen und ein Wert kleiner als 0 zurückgegeben werden.
Wenn a gleich b ist, geben Sie 0 zurück.
Wenn a größer als b ist, wird ein Wert größer als 0 zurückgegeben.

Parameter beschreiben
Sortieren nach Optional. Gibt die Sortierreihenfolge an. Muss eine Funktion sein.

const arr = [1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5];
const fn = (a, b) => {
    returniere a - b // b - a in umgekehrter Reihenfolge}
console.log(arr.sort(fn));

Dies ist das Ende dieses Artikels zum Konvertieren eines mehrdimensionalen Arrays in ein eindimensionales Array und zum anschließenden Entfernen der Neuordnung in js. Weitere verwandte Inhalte zum Konvertieren eines mehrdimensionalen Arrays in ein eindimensionales Array und zum Entfernen der Neuordnung in js finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Untersuchung des Problems der Array-Deduplizierung in JavaScript
  • JavaScript-Array-Deduplizierungslösung
  • Detaillierte Erläuterung mehrerer Methoden zur Deduplizierung im Javascript-Array
  • Detaillierte Erklärung der JavaScript-Array-Deduplizierung
  • JavaScript verwendet häufig Array-Deduplizierung tatsächliche Kampf Quellcode
  • Beispiele und Vergleich von 3 Methoden zur Deduplizierung von JS-Objekt-Arrays
  • Detaillierte Diskussion mehrerer Methoden zur Deduplizierung von JavaScript-Arrays

<<:  Tutorial zur Installation von MySQL unter CentOS7

>>:  Detaillierte Erklärung des Whereis-Beispiels zum Suchen eines bestimmten Programms in Linux

Artikel empfehlen

Bringen Sie Ihnen kostenlos bei, wie Sie AWS-Serverressourcen nutzen

AWS – Amazons Cloud-Computing-Serviceplattform Ic...

Detaillierte Erläuterung der MySQL sql_mode-Abfrage und -Einstellung

1. Führen Sie SQL aus, um anzuzeigen wählen Sie @...

Detaillierte Erläuterung des MySQL-Indexprinzips und der Abfrageoptimierung

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

Vue realisiert die Palastgitterrotationslotterie

Vue implementiert die Palastgitterrotationslotter...

Detaillierte Erklärung der allgemeinen Verwendung von MySQL-Abfragebedingungen

Dieser Artikel veranschaulicht anhand von Beispie...

Einige Erfahrungen in der Selbstkultivierung von Künstlern

Da der Einfluss des Unternehmens wächst und seine...

Tutorial zur SQL-Optimierung: IN- und RANGE-Abfragen

Vorwort In „High Performance MySQL“ wird erwähnt,...

Analyse der Verwendung und des Prinzips der Docker Swarm-Clusterverwaltung

Schwarmclusterverwaltung Einführung Docker Swarm ...

Beispielcode zur Implementierung eines Hintergrundunschärfeeffekts mit CSS

Ist es der unten gezeigte Effekt? Wenn ja, lesen ...

So veröffentlichen Sie ein lokal erstelltes Docker-Image auf Dockerhub

Heute zeigen wir Ihnen, wie Sie das lokale Docker...