Hvordan du kan snu en matrise i JavaScript

Hvordan du kan snu en matrise i JavaScript

Å reversere en matrise er et veldig populært kodingsproblem som ofte blir stilt som et intervjuspørsmål når du søker om et inngangsnivå JavaScript Developer Position. Noen ganger blir du bedt om å endre den originale matrisen slik at det første elementet blir det siste og det andre elementet blir det nest siste elementet i matrisen og så videre. Noen ganger kan du bli bedt om å snu en matrise uten å endre den opprinnelige matrisen.

I dette innlegget vil vi se på forskjellige metoder som brukes til å reversere en matrise i JavaScript; Disse metodene vil inkludere metodene som reverserer den opprinnelige matrisen så vel som metoder som kan brukes til å lage en ny omvendt matrise.

Hvordan bruke JavaScript Reverse () -metoden

Den omvendte metoden i JavaScript brukes til å reversere indeksene på innholdet i en matrise slik at det siste elementet i matrisen blir det første elementet i matrisen og omvendt:

Syntaks

Array.omvendt()

JavaScript Reverse Method tar ingen parametere og brukes i kombinasjon med matriserens navn. La oss se på et eksempel på omvendt metode:

La EmployeeNames = ['John', 'Jack', 'Chris', 'Hank'];
konsoll.Logg (ansatte.omvendt());

Merk: Denne metoden endrer den originale strengen.

Hvordan du kan reversere matriseelementer uten å endre den originale matrisen

Som nevnt ovenfor, endrer den omvendte metoden den originale matrisen. Så hvis du vil reversere matrisen uten å endre den opprinnelige matrisen, må du bruke en annen metode. Dessverre har JavaScript ikke en eneste spesifikk metode for denne funksjonaliteten, snarere må vi bruke en kombinasjon av forskjellige metoder for å utføre denne funksjonen.

Den første metoden vi lærer er å bruke spredningsoperatøren sammen med omvendt metode. Først vil du kopiere matrisen ved å bruke spredningsoperatøren og deretter ringe omvendt metode på den nyopprettede matrisen:

La EmployeeNames = ['John', 'Jack', 'Chris', 'Hank'];
La reverseArr = [… ansettelsesnavn].omvendt();
konsoll.logg (ansatte);
konsoll.logg (reverseArr);

Vi kan også bruke push- og unshift -metodene i kombinasjon med en for loop for å reversere en matrise uten å endre den originale matrisen:

La EmployeeNames = ['John', 'Jack', 'Chris', 'Hank'];
La reverseArr = [];
for (la i = 0; i <= employeeNames.length - 1; i++)
reversearr.unshift (ansatte (ansatte [i]);

konsoll.logg (reverseArr);

I eksemplet over startet vi sløyfen fra i = 0 da array -indekseringen starter på 0; Så setter vi tilstanden som jeg <= employeeNames.length - 1 as the highest index in an array will always be one number less than the total number of elements in the array.

Inne. I den første iterasjonen av loopen er jeg lik 0, så ansatte [i] velger det første elementet i matrisen og unshift -funksjonen setter den på den første indeksen til reversearr. På den andre iterasjonen er jeg lik 1, så ansatte [i] velger det andre elementet i matrisen og unshift -funksjonen setter det på den første indeksen. Elementet som tidligere er til stede på den første indeksen, beveger seg nå inn på den andre indeksen. Denne prosessen vil fortsette å gjenta til den når det siste elementet og hele matrisen er omvendt.

Vi kan også bruke push -metoden for å reversere en matrise på samme måte, men for det må vi bruke en reduksjon for sløyfeindeks.

La EmployeeNames = ['John', 'Jack', 'Chris', 'Hank'];
La reverseArr = [];
for (la jeg = ansatte.lengde - 1; i> = 0; Jeg--)
reversearr.Push (EmployeeNames [i]);

konsoll.logg (reverseArr);

Konklusjon

Å reversere elementene i en matrise er en av de kodingsutfordringene som alle bør prøve når de er nye på å lære programmering/skriptspråk; Det blir ofte spurt i kodende quizer og intervjuer.

I dette innlegget brukte vi den innebygde omvendte metoden for å snu en JavaScript-matrise; Denne metoden endrer den originale matrisen, så vi lærte også andre metoder der vi kunne snu en matrise mens vi bevarte den originale matrisen. For det formålet lærte vi å bruke spredningsoperatøren og skyve, unshift -metoder i kombinasjon med for løkker.