# Array
```
author: krm
created: 2023-09-26
status: alpha
```

Ange värdet på utrycket nedan. Blir det ett fel så skriv vilken typ av 
error det blir. Finns det fler utryck på samma rad är det värdet av det 
sista utrycket som ska anges. Förutom koden som ska vara gemensam så 
utgår vi från att inget utryck påverkar en annan uppgift.

# 1. 🎯 let a=[1,2,3,4,5,6]; a[0]+a[3]

- 5

# 2. 🎯 let a=[1,2,3]; typeof a

- object

# 3. 🎯 let a=[1,2,3]; a

- [ 1, 2, 3 ]

# 4. 🎯 Boolean([]);

- true

# 5. 🎯 Number([]);

- 0

# 6. 🎯 Array.isArray([1,2])

- true

# 7. 🎯 Array.isArray(12)

- false

# 8. 🎯 [2,3]+["a","b"]

- 2,3a,b

# 🪧 Vi leker med listor

```js
let a = [1, 2, 3, 4, 5, 6, 7, 8, 9,0];
let aa = ["a", "b", "c", "d", "e", "f"];
let aaa = [ a, aa, "js", [ 1, [ 2, 3]]]
```

## 9. 🎯 a[0]

- 1

## 10. 🎯 aa[0]+aa[1]+aa[2]

- abc

## 11. 🎯 a[9]*a[1]

- 0

## 12. 🎯 aa[6]

- undefined

## 13. 🎯 aaa[1][5]

- f

## 14. 🎯 aaa[3][1][0]

- 2

## 15. 🎯 a.length

- 10

## 16. 🎯 a.slice(8) 

- [ 9, 0 ]

## 17. 🎯 a.slice(8); a

-  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ]

## 18. 🎯 a.splice(3,2)

-  [ 4, 5 ]

## 19. 🎯 aa.splice(3,2);aa 

- [ "a", "b", "c", "f" ]

# 🪧 Vi leker mer med objekt

I koden nedan så utgår vi från att de görs i tur och ordning och om 
utrycket förändrar objektet a är det detta som används i nästa uppgift.

```js
const a = ["a","b","c"]
```

## 20. 🎯 a.pop()

- c

## 21. 🎯 a.push("C++")

- 3

## 22. 🎯 a

-  [ "a", "b", "C++" ]

## 23. 🎯 a.shift();

- a

## 24. 🎯 a.unshift("Ada");

- 3

## 25. 🎯 a

- [ "Ada", "b", "C++" ]

# 26. 🎯 Vad blir utskriften av koden nedan?

```js
let names = ["Tom", "Mats", "Eva", "Krm"];

for(let i = 0; i < names.length; i++) {
  console.log(i+": "+names[i]);
}
```

- 0: Tom\n1: Mats\n2: Eva\n3: Krm\n

# 27. 🎯 Vad blir utskriften av koden nedan?

```js
let names = ["Tom", "Mats", "Eva", "Krm"];

for(let name of names) {
  console.log(name+" : "+name.length);
}
```

- Tom : 3\nMats : 4\nEva : 3\nKrm : 3\n

# 28. 🤔 Vad menas med en "kö"?

# 29. 🤔 Vad menas med en "stack"?
