Lister¶
Du har hørt begrepet, array, og lurer på hva det betyr? Et array er også det vi kan kalle en liste. En samling av elementer som er lagret i en bestemt rekkefølge. Vi kan ha lister med tall, strenger, objekter, eller andre lister. En liste kan inneholde en type, eller flere typer.
Nedenfor ser du en liste med tall:
Iterere over lister¶
I forrige eksempel så vi hvordan vi kan hente ut elementer fra en liste ved å bruke indekser. Vi kan også iterere over en liste ved å bruke en for-løkke. Nedenfor ser du et eksempel på hvordan vi kan gjøre dette:
Filtrere elementer i en liste¶
Lister i JavaScript har mange innebygde funksjoner som hjelper deg med å manipulere og filtrere elementer. En av disse funksjonene er filter. Nedenfor ser du et eksempel på hvordan vi kan bruke filter til å lage en ny liste som kun inneholder partall:
La oss bryte ned denne koden litt mer.¶
På linje en definerer vi en liste med tall:
På linje to definerer vi en ny variabel som heter partall.
Videre kaller vi funksjonen .filter(...) på minListe.
Det du kan se er at filter tar inn en funksjon som argument. Denne funksjonen tar ett argument(tall), og returnerer en bolsk verdi (true/false):
Note
Dette er det som kalles en arrow function. Denne kunne vært skrevet på denne måten:
Da kunne de ha sett slikt ut:
... eller
Det som skjer her er at når du kaller .filter på en liste er at den vil iterere over alle verdier i listen, og kalle gitt funksjon med den verdien som argument. Når listen består av feks. [1, 2, 3], så vil den kalle erPartall funksjonen med henholdsvis 1, 2 og 3. Den funksjonen returnerer som sagt en bolsk verdi, true/false. Feks:
Den vil derfor forkaste/filtere ut alle elementer som er false (alle oddetall), og beholde de som er true (alle partall). Når den er ferdig med å kjøre vil den returnere en ny liste som da inneholder kun tall som er partall. Denne listen tilordner vi nå variabelen partall:
På linje tre skriver vi ut listen i konsollet.
Vi kan også manupulere verdiene i en liste¶
Noen ganger ønsker vi å manipulere alle verdier i en liste. Her har vi blant annet funksjonen .map(...). Nedenfor er et eksempel på hvordan vi ønsker å gange alle tall i listen med 10:
Samme forklaring som for .filter gjelder også for .map. Forskjellen her er at vi nå legger ved en funksjon som returnerer en ny verdi for verdien den får inn.
Hva skjer når vi bruker .map i React?
Akkurat det samme. Du har kanskje sett i React-kode at en benytter .map flittig:
Og forklaringen er den samme. Du har her en liste med navn som du itererer over og modifiserer. For hvert navn i listen returnerer du et nytt element. I dette tilfellet er det en listekmoponent (<li>...</li>).
Koden over vil derfor lage listen: