Hvordan flate en nestet JavaScript -matrise

Hvordan flate en nestet JavaScript -matrise
JavaScript Array har muligheten til å lagre flere matriser i seg selv. Når en indre matrise eller underarray legges til en matrise, er den kjent som en "Flerdimensjonal”Eller“Nestet ” Array. Det finnes visse scenarier der du kanskje trenger å lage en matrise som består av alle de nestede JavaScript -arrayelementene i sin opprinnelige rekkefølge. Hvis det er tilfelle, så Flat Det opprettede nestet matrisen og reduserer dimensjonaliteten i henhold til den spesifiserte dybde.

Dette innlegget vil forklare metodene for Flat en Nestet JavaScript -matrise. Men før vi hopper inn i det, vil vi forklare begrepet "dybde”Som det er assosiert med utflatingsprosedyren.

Dybde av nestet javascript -matrise

Operasjonen med å legge til en indre matrise eller hekke en rekke i normale array -trinn "1”I dybde nivå. For eksempel, uten nestet matrise, vil en normal matrise ha en "0”Dybde nivå:

[12, 23, 34, 45, 56, 67, 78] // dybde nivå = 0

Med en indre underarray vil dybdenivået bli "1”:

[12, 23, 34, [45, 56, 67, 78]] // Dybde nivå = 1

Tilsvarende vil det å øke antallet indre underarray også øke dybdennivået:

[12, 23, [34, [45, 56, 67, 78]]] // dybde nivå = 2
[12, [23, [34, [45, 56, 67, 78]]]] // dybde nivå = 3

Nå, sjekk ut metoden for å flate en matrise i JavaScript -versjonen før ES6.

Hvordan flate en nestet JavaScript -matrise ved hjelp av concat () -metode og spredt operatør […]

Kombinasjonen av “concat ()”Metode og“Spred operatør […]”Metode brukes til å flate ut en nestet JavaScript -matrise på slik som den spredte operatøren […] sprer elementene i den spesifiserte matrisen og deretter sammenkobler dem i en tom matrise ved hjelp av JavaScript concat () -metoden:

La matrise = [12, 23, [43, 34, 56]];
La FlatArray = [].concat (... matrise);
konsoll.Logg (FlatArray);

Produksjon

Imidlertid flater denne tilnærmingen bare nivået en nestede matriser:

const numarray = [12, 23, [34, 45, 56, [67, 78]]];
La FlatArray = [].concat (... numarray);
konsoll.Logg (FlatArray);

Den ovennevnte koden vil legge til den indre rekke "numarray”Som en helhet til“FlatArray”Siden det ikke kan spre elementene:

Hva om du må flate ut et dypt nestet utvalg? For å gjøre det, kan du bruke "Array.flat ()”Metode som tilbys av ES6 JavaScript -versjonen.

Hvordan flate en nestet JavaScript -matrise ved hjelp av matrise.Flat () Metode

Array.flat()”Metoden er innebygd i ES6 som gjør deg i stand til å "Flat”En nestet JavaScript -matrise. Denne metoden returnerer en ny matrise der alle elementene i undergård er sammenkoblet i henhold til den spesifiserte dybden.

Syntaks av matrise.Flat () Metode for å flate en nestet JavaScript -matrise

La NewArray = matrise.flat ([dybde])

Her, "Array”Objekt vil påkalle“flat()”Metode mens du passerer”dybde”Som et argument.

La oss nå sjekke noen eksempler for å forstå det uttalte konseptet.

Eksempel 1: Hvordan flate en nestet JavaScript -matrise med en nivå dybde

Først av alt vil vi lage en nestet JavaScript-matrise som har følgende elementer og en underarray:

const numarray = [12, 23, [34, 45, 56]];

Deretter vil vi flate det skapte nestet “numarray”Ved hjelp av“flat()”Metode:

const flatArray = numarray.flat();
konsoll.Logg (FlatArray);

Vi har ikke passert “dybde”Argument, så“numarray.flat()”Vil vurdere standarddybdeverdien, som er“1”Og sammenkobler JavaScript nestede matriseelementer 34, 45, 56 til det nyopprettede "FlatArray”:

Eksempel 2: Hvordan flate en nestet JavaScript-matrise med to-nivå dybde

I det følgende eksempel vil vi spesifisere “2”Som“dybde”Nivå. Ved å gjøre det “numarray.flat()”Vil flate de indre to undergårdene og legge sine elementer i det resulterende”FlatArray ()”:

const numarray = [12, 23, [34, 45, 56, [67, 78]]];
const flatArray = numarray.flat (2);
konsoll.Logg (FlatArray);

Utførelse av det gitte programmet vil vise følgende utgang:

Eksempel 3: Hvordan flate ut en nestet JavaScript -matrise uten å vite dybdenivået

Hvis du ikke har noen anelse om dybdivået, pass "evighet”Som et argument for“Array.flat()”Metode. I dette tilfellet er alle elementer under gebyrene "rekursivt”Sammenlignet til et annet utvalg.

For eksempel for å flate ut det undergitte "numarray”, Vil vi spesifisere“evighet”I stedet for dybdivået argumenterer:

const numarray = [12, 23, [34, 45, 56, [67, 78, [89, 90]]];
const flatArray = numarray.flat (uendelig);
konsoll.Logg (FlatArray);

Som du kan se, “numarray.flat()”Metoden har med hell flatet den nestede”numarray”:

Det var all den essensielle informasjonen relatert til å flate en matrise i JavaScript. Du kan jobbe videre med det i henhold til dine preferanser.

Konklusjon

De Array.flat() Metoden brukes først og fremst for å flate ut en nestet JavaScript -matrise. Den godtar dybde Nivå som et argument og returnerer en ny matrise der alle elementene i under-gebyrene er sammenkoblet i henhold til den spesifiserte dybden. Før ES6, kombinasjonen av noen innebygde metoder som for eksempel concat () og spredt operatør […] kan bare flate ut nivå en -matrisen; Imidlertid Array.flat() Metode hjelper til med å flate dypt nestede matriser. Denne oppskrivningen forklarte prosedyren for å flate en matrise i JavaScript.