# 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] } } ```