# Arrays
## Aufgabe 1
Erstelle ein Array, das deine drei Lieblingsfarben als Text enthält. Es soll die Farben nacheinander in je einem Nachrichtenfenster anzeigen.
## Aufgabe 2
Schreibe ein Programm, das deine Lieblingsfarben von oben in der Form "rot, gelb, blau" in einem einzigen Nachrichtenfenster anzeigt.
## Aufgabe 3
`var zahlen = [2,4,6,2,4,6,7,3,3,2,23,6,9,66,34];`
Schreibe ein Programm, das die Summe der Elemente eines Zahlenarrays (z.B. so wie oben) berechnet und anzeigt.
## Aufgabe 3.5
Schreibe ein Programm, das aus einem Zahlen-Array den Durchschnitt berechnet und anzeigt.
## Aufgabe 4
Schreibe ein Programm, das die Zahl, die am häufigsten in einem Array vorkommt, in einer Nachrichtenbox anzeigt.
## Aufgabe 6
Schreibe ein Programm, das ein Array aus Zahlen der Grösse nach sortiert.
### Lösungen
## Aufgabe 1
```js
var farben = ['gelb', 'grün', 'blau']
for(var i = 0; i < farben.length; i = i + 1) {
alert('Meine ' + (i+1) + '. Wahl ist ' + farben[i])
}
```
## Aufgabe 2
```js
var farben = ['gelb', 'grün', 'blau']
alert(farben.join(', '))
// oder
var text = ''
for(var i = 0; i < farben.length; i = i + 1) {
text = text + farben[i] + ', '
}
alert(text)
```
## Aufgabe 3
```js
var zahlen = [1,5,6,3,5,7,4,3,6,8]
var summe = 0
for(var i = 0; i < zahlen.length; i = i + 1) {
summe = summe + zahlen[i]
}
alert(summe)
```
## Aufgabe 3.5
```js
var zahlen = [1,5,6,3,5,7,4,3,6,8]
var summe = 0
for(var i = 0; i < zahlen.length; i = i + 1) {
summe = summe + zahlen[i]
}
alert(summe / zahlen.length)
```
## Aufgabe 4
```js
var zahlen = [2,4,6,2,4,6,7,3,3,2,23,6,9,66,34]
// grösste Zahl finden
var max = 0
for(var i = 0; i < zahlen.length; i = i + 1) {
if(zahlen[i] > max) {
max = zahlen[i]
}
}
// Strichliliste mit 0 füllen
var strichListe = []
for(var i = 0; i <= max; i = i + 1) {
strichListe[i] = 0
}
// Strichliliste machen
for(var i = 0; i < zahlen.length; i = i + 1) {
strichListe[zahlen[i]] += 1
}
// grösste Anzahl Striche finden
var maxStriche = 0
for(var i = 0; i < strichListe.length; i = i + 1) {
if(strichListe[i] > maxStriche) {
maxStriche = strichListe[i]
}
}
// Position von maxStriche in Liste finden
var pos = strichListe.indexOf(maxStriche)
alert(pos)
```
## Aufgabe 5
Statt einem Array kann ein assoziatives Array verwendet werden. Dies hat nicht Zahlen, sondern beliebige Werte als Index.
```js
var werte = ["rot", "blau", "gelb", "blau", "rot", "grün", "blau"]
// Strichliliste machen
for(var i = 0; i < werte.length; i = i + 1) {
if(strichListe[werte[i]]) {
// Wert vorhanden
strichListe[werte[i]] += 1
} else {
// noch kein Wert vorhanden
strichListe[werte[i]] = 1
}
}
// grösste Anzahl Striche finden
var maxStriche = 0
var maxWert = ''
for(var wert in strichListe) {
if(strichListe[wert] > maxStriche) {
maxStriche = strichListe[wert]
maxWert = wert
}
}
alert(wert)
```
## Aufgabe 6
Mit [Insertion Sort](https://de.wikipedia.org/wiki/Insertionsort).
```js
for(var i = 2; i < array.length; i = i + 1) {
for(var k = i; i > 1 && array[k] < array[k-1]; k = k - 1) {
// Position k mit k-1 austauschen
var temp = array[k]
array[k] = array[k-1]
array[k-1] = array[k]
}
}
```