Arrays - En samling med ting

Vi vet hvordan vi samler en enkelt verdi:

let myFavoriteNumber = 7

Men hva om man har flere favorittall?

let myFavoriteNumbers = [9, 2, 8, 3, 7, 8]

Legg merke til at vi bruker her firkantklammer [] som du kan skrive med alt gr+8 og alt gr+9. Dette til forskjell fra krøllparanteser {} som vi bruker for å lage objekter.

Vi gjør på akkurat samme måte om vi skulle hatt tekst:

let myWords = ["red", "orange", "yellow"]

Eller objekter:

let myPets = [
  {
    name: "Meowsalot",
    species: "cat"
  },
  {
    name: "Barksalot",
    species: "dog"
  }
]

Eneste grunnen til at vi legger inn linjeskift er for at det skal være mer lettleselig, enn om vi har alt på en linje.

Alle array har tilgang til en del forhåndsbestemte metoder, definert av JavaScript. Et eksempel er push:

// legger til et ekstra element i slutten av arrayet:
myWords.push('green')

For å sjekke at dette ble oppdatert kan vi i utgangspunktet bruke alert – men den blir litt irriterende i lengden, så la oss prøve ut en annen måte å skrive ut på, nemlig console.log(). Prøv å skrive:

console.log('Hello')

Høyreklikk på det hvite feltet under koden i codepen. Velg Inspect Element og finn tab’en Console, som vi gjorde helt i starten. Der vil du se Hello. Da kan vi teste med myWords:

console.log(myWords)

Hvis alt er gjort riktig skal nå “green” være lagt til i lista over farger.

De aller fleste datatyper i JavaScript er, eller tolkes som et objekt. Alle objekt i javascript har et sett med pre-definerte metoder, slik som f.eks arrays.push().

Et annet eksempel kan være tekst (strings) som har sine metoder:

let name = "James"
console.log(name.toUpperCase())< JAMES

Eller for å avrunde et desimaltall:

let myNumber = 7.89
console.log(myNumber.toFixed())< 8

Disse eksemplene er bare ment for å vise at datatyper i javascript har metoder man kan benytte – det er ikke viktig at du husker metodene utenatt. 

Vi hopper tilbake til arrays. Sett at vi ønsker å fjerne ordet “orange” fra myWords-arrayet vårt.

Metoden splice lar oss gjøre nettopp dette:

myWords.splice(a, b)

a-argumentet er på hvilken plass (index) i arrayet som du ønsker å fjerne. En viktig ting om array i javascript er at de begynner på 0, ikke 1. Det vil si at “red” er på plass nummer 0, orange er på plass nummer 1, yellow er plass nummer 2 og green er plass nummer 3. Vi ønsker altså å fjerne nummer 1.

b-argumentet er hvor mange elementer du vil fjerne fra arrayet, fra og med indexen som du satte i argument a. Vi ønsker bare å fjerne ett element, altså setter vi inn tallet 1.

myWords.splice(1, 1) // fjerner altså 'orange', og kun det.

Hva om vi ønsker å fjerne “red” ?

myWords.splice(0, 1)

Konseptet med en tallplass (index) i et array er også hvordan vi får tak i dataene i arrayet. Si vi skal ha tak i det tredje elementet i arrayet:

console.log(myFavoriteNumbers[2])

Vi bruker altså firkantklammer, og skriver tallplassen som vi ønsker å hente ut. Husk at arrayet begynner på 0, ikke 1!

Si at vi skal ha tak i hva slags rase kjæledyret Barksalot er:

console.log(myPets[1].species)