Array
Tabeller (array) og strenger (string) kan lagre samlinger av data. En tabell brukes ofte til å lagre lister med like data. Anta at vi lager en tabell i javascript slik:
Da kan du se for deg at tabellen ser slik ut:
| Indeks | Elev |
|---|---|
| 0 | Ole |
| 1 | Per |
| 2 | Kari |
| 3 | Lise |
| 4 | Lars |
| 5 | Oda |
Som du ser har hvert element sitt nummer (fra 0). Dette nummeret tilsvarer adressen til verdien.
Med dette bildet i hodet er det lett å forstå hvordan man henter ut en verdi fra en tabell:
Dette betyr: Hent ut verdien fra NavnPåTabell på plass gitt av indeks.
Oppdatering/endring av en verdi skjer på samme måte:
Legg merke til at all tekst må ha hermetegn rundt seg. Dersom jeg skrev
da vil js prøve å hente verdien fra en variabel med navnet Lars. Dette vil som oftest gi en feilmelding (fordi variabelen Lars ikke er definert).
Metoder for å lage en array
En tekst (string) konvertert til array
Gitt at du har en string som vist under
og du vil gjøre den om til en array - du vil ha ["1","2","3","4","5","6"] .
Da kan du bruke en av disse metodene:
Alle tre vil lage en array lik ["1","2","3","4","5","6"] .
Array functions
Alle array objekter har tilgang til en rekke innebygde funksjoner.
Dersom du lager en ny array,
const a = []; vil du kunne se alle
de innebygde funksjonene ved å skrive a. i console på en nettleser.
I vs-code vil du få følgende bilde:
Her kan du da lete etter en funksjon og lese beskrivelse rett i editoren.
De mest sentrale array funksjonene
Lista viser de viktigste (de jeg bruker oftest)2 array funksjonene
| Navn | Beskrivelse | eksempel |
|---|---|---|
| push(a) | legger nytt element a bakerst i arrayet | arr.push(2) |
| pop() | henter og fjerner siste element | siste = arr.pop() |
| sort() | sorterer arrayet alfabetisk 1 | arr.sort |
| contains(a) | true dersom a finnes i arrayet | if(arr.contains("ole")) |
| find(f) | finner verdi som oppfyller test | arr.find(e => e >100) |
| join(sep) | limer sammen bitene til en tekst med sep mellom | arr.join(",") |
| slice(start,slutt) | lager kopi [start..slutt-1] | kopi = arr.slice() |
| reverse() | snur rekkefølgen | arr.reverse()) |
| shift() | henter ut og fjerner første element | first = arr.shift() |
| unshift(a) | legger inn nytt første-element | arr.unshift(2) |
Arbeide med tabeller
Vi har tabellen elevTabell som vi nå ønsker å skrive ut
| Indeks | Elev |
|---|---|
| 0 | Ole |
| 1 | Per |
| 2 | Kari |
| 3 | Lise |
| 4 | Lars |
| 5 | Oda |
For å skrive ut alle elementene i tabellen bruker vi en løkke:
Her ser vi at alle Tabeller (arrays) har en innebygd egenskap med navnet length som gir deg antall elementer i tabellen.
Denne er viktig å kjenne til slik at du kan finne lengden på tabellen (antall elementer).
Array funksjoner
Flere dimensjoner
Flerdimensjonale tabeller. Tenk deg at du skal lage et sudoku brett. Brettet er 9 x 9 ruter. Du ønsker å bruke en array til å lagre brettet.
Du kan nå legge inn tallene dine slik:
Dette kalles en todimensjonal tabell, du må oppgi to verdier for å spesifisere en celle i tabellen (tilsvarer (x,y) i koordinatsystemet). Du kan selvsagt lage tabeller med flere nivåer (en tabell inne i en tabell inne i en tabell … …).
En mye brukt teknikk er å lage en tabell som inneholder objekter . Et objekt kan for eksempel være informasjon om en elev. Vi kan da lage en tabell med info om elever slik:
Mer om Array funksjoner
Funksjoner som endrer verdiene i arrayet
Funksjoner som gir en ny array som resultat
En innebygd travasering av array-elementer
Endring av alle verdier i en array med .map
Sortere elementer med egenskaper
Du kan også sortere array som inneholder objekter.
- Egentlig bruker jeg map,reduce,replace,filter mest.↩
- Se numerisk sortering↩