Sie sind hier 161
Etwas Ordnung in die Daten bringen
Sobald Sie mit der Refaktorierung des Codes fertig sind, sollten Sie Ihre Änderungen in »bubbles.html«
speichern. Das fertige Programm soll jetzt aussehen wie unten gezeigt. Wenn Sie die Seite im Browser neu
laden, sollte das Ergebnis so aussehen wie vorher. Aber Ihr Code ist jetzt besser organisiert und wartbarer.
Erstellen Sie testweise Ihr eigenes scores-Array und versuchen Sie, den Code wiederzuverwenden!
Alles zusammengenommen ...
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Seifenblasen-Testlabor</title>
<script>
var scores = [60, 50, 60, 58, 54, 54, 58, 50, 52, 54, 48, 69,
34, 55, 51, 52, 44, 51, 69, 64, 66, 55, 52, 61,
46, 31, 57, 52, 44, 18, 41, 53, 55, 61, 51, 44];
function printAndGetHighScore(scores) {
var highScore = 0;
var output;
for (var i = 0; i < scores.length; i++) {
output = "Mischung Nummer " + i + " Ergebnis: " + scores[i];
console.log(output);
if (scores[i] > highScore) {
highScore = scores[i];
}
}
return highScore;
}
function getBestResults(scores, highScore) {
var bestSolutions = [];
for (var i = 0; i < scores.length; i++) {
if (scores[i] == highScore) {
bestSolutions.push(i);
}
}
return bestSolutions;
}
var highScore = printAndGetHighScore(scores);
console.log("Anzahl der Test: " + scores.length);
console.log("Bestes Ergebnis: " + highScore);
var bestSolutions = getBestResults(scores, highScore);
console.log("Mischungen mit dem besten Ergebnis: " + bestSolutions);
</script>
</head>
<body> </body>
</html>
Hier sehen Sie die neue
Funktion getBestResults.
Den Rückgabewert der
Funktion verwenden wir,
um die Mischungen mit dem
besten Ergebnis anzuzeigen.
162 Kapitel 4
Weitere Seifenblasenberechnungen
var costs = [.25, .27, .25, .25, .25, .25,
.33, .31, .25, .29, .27, .22,
.31, .25, .25, .33, .21, .25,
.25, .25, .28, .25, .24, .22,
.20, .25, .30, .25, .24, .25,
.25, .25, .27, .25, .26, .29];
var scores = [60, 50, 60, 58, 54, 54, 58, 50, 52, 54, 48, 69, ..., 44];
var costs = [.25, .27, .25, .25, .25, .25, .33, .31, .25, .29, .27, .22, ..., .29];
Was ist hier zu tun? Es geht darum, die beste Seifenblasenmischung zu finden. Hierfür
brauchen wir die Mischungen mit dem besten Testergebnis und müssen hieraus
diejenige mit den geringsten Kosten auswählen. Zum Glück haben wir das Array
costs, das in seiner Struktur dem scores-Array entspricht. Das heißt, die Kosten
für die Mischung mit dem Index 0 (in scores) finden wir im costs-Array ebenfalls
beim Index 0 (.25). Die Kosten für die Mischung mit dem Index 1 finden wir im
costs-Array beim Index 1 (0.27) und so weiter. Für jedes Messergebnis finden Sie die
entsprechenden Kosten im Array costs am gleichen Index. Man spricht in diesem
Fall auch von parallelen Arrays.
Die Kosten für die Mischung mit dem
Index 0 haben ebenfalls den Index 0 …
Das Gleiche gilt für die
übrigen Werte in den
Arrays costs und scores.
Gute Arbeit! Jetzt fehlt nur noch eine Sache … können
Sie auch herausfinden, welche Seifenblasenmischung
am kosteneffektivsten ist? Mit diesen zusätzlichen
Informationen übernehmen wir mit Sicherheit den
gesamten Seifenblasenmarkt. Hier haben Sie ein Array
mit den Kosten für jede Mischung, das Sie für diese
Aufgabe benutzen können.
Hier ist das Array. Jede Kostenangabe
entspricht der Seifenblasenmischung mit
dem gleichen Index im Array scores.
Die Arrays scores und costs sind parallel, da es für
jedes Messergebnis in scores eine entsprechende
Kostenangabe in costs mit dem gleichen Index gibt.

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.