Hvordan søke gjennom matriser i JavaScript ved hjelp av matriser -metoder?

Hvordan søke gjennom matriser i JavaScript ved hjelp av matriser -metoder?
Når du jobber med programmeringsspråk, vil du ofte finne deg selv å jobbe med forskjellige typer data plassert i array -variabler. JavaScript er ikke annerledes når det gjelder å bruke data i matriser. Den trivielle måten å søke på data i matriser er ved å bruke en slags sløyfe, mest foretrukket til Løkke. I JavaScript er det imidlertid forskjellige metoder som letter prosessen med å søke gjennom en matrise.

Vi kommer til å se over noen metoder som hjelper oss å søke etter et element i en matrise. Disse metodene er:

  • inkluderer ()
  • oversikt over()
  • finne()
  • filter()

For å teste ut alle metodene i denne opplæringen, skal vi lage en matrise som inneholder forskjellige elementer:

Array = ["Google", 13, 66, "Dette er en lang setning", "tabell og stol"];

De .Inkluderer () Metode

Når du vil gå gjennom en matrise bare for å svare på spørsmålet “eksisterer dette elementet i denne matrisen eller ikke?”Du bruker .Inkluderer () Metode. Slik .inkluderer () Metode fungerer er at den søker på hvert element i matrisen etter en kamp, ​​og hvis den finner noen kamp, ​​kommer den tilbake ekte Ellers vil det komme tilbake usant.

Syntaks av .Inkluderer () Metode

arr.inkluderer (elem);

Returverdi: En boolsk verdi

Eksempel
Nå som vi har vårt utvalg:

Array = ["Google", 13, 66, "Dette er en lang setning", "tabell og stol"];

La oss prøve å finne om det er et element "Google" som er til stede i det, ved å bruke følgende kodelinje:

konsoll.Logg (matrise.inkluderer ("Google"));

Utgangen er:

Det kommer tilbake ekte, noe som betyr at elementet vi søkte etter er faktisk til stede i matrisen.

På tide å sjekke om nummer 23 er til stede i vår matrise eller ikke. Vi kan søke etter 23 ved å bruke kommandoen:

konsoll.Logg (arr.inkluderer (23));

Vi får utdataene:

Det returnerte usant, noe som betyr at det ikke er noe slikt element i matrisen.

De .INDEXOF () Metode

De oversikt over() metoden fungerer på en lignende måte som inkluderer () metode, men en subtil forskjell mellom disse to funksjonene er at oversikt over() Metode søker i matrisen etter ønsket element og returnerer indeksverdien i stedet for å bare returnere en boolsk verdi. Hvis det ikke er noe slikt element til stede inne i matrisen, returnerer det indeksverdien av -1.

Syntaks av .INDEXOF () Metode
Syntaksen til .oversikt over() metoden er ganske grunnleggende. Det er:

arr.IndexOf (Elem);

Returverdi: Indeks for elementet inne i matrisen.

Eksempel
Tar matrisen erklært:

Array = ["Google", 13, 66, "Dette er en lang setning", "tabell og stol"];

Vi kommer til å teste ut denne funksjonen ved å prøve å finne elementet “Tabell og stol” med følgende kommando:

konsoll.Logg (matrise.indeks av ("tabell og stol"));

Utgangen er:

Utgangen er 4, ettersom elementet “tabell og stol” var det femte elementet inne i matrisen, og vi vet at det første elementet inne i matrisen starter fra indeksen “0”, så det er grunnen til at det 5. elementet har indeksen 4.

La oss ta et annet eksempel der vi vil prøve å finne indeksen for elementet "yahoo" i vårt utvalg.

konsoll.Logg (matrise.indexof ("yahoo"));

Vi får følgende utdata:

Som vi kan se, er utgangen -1, noe som betyr at elementet “yahoo” ikke er til stede i vårt utvalg.

De .finn () metode

De .finne() Metoden tar inn en tilbakeringingsfunksjon og itererer over hele matrisen for å finne og returnere det første elementet som oppfyller en viss tilstand gitt i tilbakeringingsfunksjonen.

Syntaks av .finn () metode
Syntaksen til .finne() funksjon er:

Array.finn (funksjon (element [, indeks [, matrise]] dette.Arg);

Denne metoden har ganske mange parametere:

  • funksjon: tilbakeringingsfunksjonen som vil bli sjekket mot hvert element i matrisen.
  • dette: Standardparameter - dette argument for metoden

Tilbakeringingsfunksjonen tar videre tre argumenter:

  • element: Det eneste elementet i matrisen under iterasjon, som blir matchet mot en gitt tilstand i funksjonen
  • indeks: Gjeldende elements indeks
  • Array: av det nåværende elementet

Returverdi: Elementet som passerer tilstanden ellers udefinert.

Eksempel
La oss prøve å finne et element inne i matrisen som har en lengde på mer enn 10 ved å bruke følgende kommando:

konsoll.Logg (matrise.finn (elem => elem.lengde> 10));

Vi får følgende utdata:

Det første elementet som har en lengde mer enn 10 ble skrevet ut, selv om det fortsatt var et annet element inne i matrisen som hadde en lengde på mer enn 10.

La oss gjøre denne ene tingen, endre tilstanden fra mer enn 10 til mer enn 30, vi vet at vi ikke har noe element i vårt utvalg som har en lengde på mer enn 30.

Bruk følgende kommando:

konsoll.Logg (matrise.finn (elem => elem.lengde> 30));

Utgangen vi får er:

Som vi allerede visste, hadde vi ikke noe element med en lengde mer enn 30, derfor returnerte funksjonen til oss med "udefinert".

De .Filter () Metode

Som vi er klar over nå at .finne() Metoden finner bare det første elementet som oppfyller en viss tilstand og deretter slutter å utføre. Men mesteparten av tiden vil du ikke ha det, du vil ha en liste over alle elementene som oppfyller den spesifikke tilstanden. Derfor bruker vi .filter() metode.

De .filter() Metode søker etter matrisen etter og returnerer en rekke alle elementene som oppfyller en viss betingelse.

Syntaks av filter () -metode
Syntaks for filter () -metoden er ganske lik .finn () metode. Det er som:

Array.finn (funksjon (element [, indeks [, matrise]] dette.Arg);

La oss forklare parametrene veldig kort.

  • funksjon: tilbakeringingsfunksjonen
  • dette: Standardparameter - dette argument for metoden

Tilbakeringingsfunksjonen tar videre tre argumenter:

  • element: Det eneste elementet i matrisen under iterasjon, som blir matchet mot en gitt tilstand i funksjonen
  • indeks: Gjeldende elements indeks
  • Array: Nåværende elements matrise

Returverdi: En matrise som inneholder alle elementene som passerte tilstanden, ellers en tom rekke.

Eksempel
La oss ta eksemplet fra forrige metode, som er å sjekke matrisen for elementene som har en lengde på mer enn 10 ved å bruke kommandoen:

konsoll.Logg (matrise.filter ((elem) => elem.lengde> 10));

Utgangen fra kommandoen er som:

Som du kan se, returnerte denne metoden en rekke alle elementene som oppfylte vår tilstand. Men hva hvis vi, akkurat som eksemplene i forrige metode, ønsker å søke etter elementene med en lengde på mer enn 30?. Vel, vi gjør det ved å bruke følgende uttalelse:

konsoll.Logg (matrise.filter ((elem) => elem.lengde> 30));

Utgangen vi får er:

Siden det ikke en gang var et eneste element inne i matrisen som hadde en lengde på mer enn 30, var det grunnen til at denne metoden returnerte oss en tom rekke.

Så til slutt er vi nå klar over noen svar etter å ha brukt disse metodene:

  • Vil du vite om et element er til stede i en matrise?
    Bruke .inkluderer () metode
  • Vil du finne og få indeksen over et spesifikt element inne i matrisen?
    Bruke .oversikt over() metode
  • Vil du vite hvilket element eller elementer som oppfyller en spesifikk tilstand?
    Bruke .finne() og .filter() metoder

Konklusjon

Å håndtere data som er lagret i matriser er en avgjørende og integrert del av ethvert programmeringsspråk, spesielt når du jobber med strukturerte data i matriser. Vi kan søke gjennom en matrise ved hjelp av de fire viktige metodene som er gitt i JavaScript. Disse metodene er nemlig Inkluderer (), Finn (), IndexOf (), Filter (). Vi lærte syntaks for disse metodene, deres returverdier sammen med eksemplene deres.