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).
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↩