Sie sind hier 159
Etwas Ordnung in die Daten bringen
Jetzt müssen wir den übrigen Code so umbauen, dass er unsere neue Funktion auch
benutzt. Hier fügen wir einfach einen Aufruf der Funktion ein und weisen der globalen
Variable highScore den Rückgabewert von printAndGetHighScore zu:
Den Code mit der Funktion printAndGetHighScore refaktorieren
<!doctype html>
<html lang="de">
<head>
<title>Seifenblasen-Testlabor</title>
<meta charset="utf-8">
<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;
}
var highScore = printAndGetHighScore(scores);
console.log("Anzahl der Tests: " + scores.length);
console.log("Bestes Ergebnis: " + highScore);
var bestSolutions = [];
for (var i = 0; i < scores.length; i++) {
if (scores[i] == highScore) {
bestSolutions.push(i);
}
}
console.log("Mischungen mit dem besten Ergebnis: " + bestSolutions);
</script>
</head>
<body> </body>
</html>
Unsere neue Funktion
wartet nur darauf,
benutzt zu werden.
Und hier rufen wir die Funktion
einfach auf und übergeben ihr als
Argument das Array scores. Ihren
Rückgabewert weisen wir der globalen
Variablen highScore zu.
Jetzt noch diesen Code zu einer
Funktion refaktorieren und die
nötigen Änderungen am übrigen
Code durchführen.
160 Kapitel 4
Übung zum Refaktorieren von Code
function getBestResults(__________, ____________) {
var bestSolutions = ______;
for (var i = 0; i < scores.length; i++) {
if (___________ == highScore) {
bestSolutions.__________;
}
}
return _______________;
}
var bestSolutions = _____________(scores, highScore);
console.log("Mischungen mit dem besten Ergebnis: " + bestSolutions);
var bestSolutions = [];
for (var i = 0; i < scores.length; i++) {
if (scores[i] == highScore) {
bestSolutions.push(i);
}
}
console.log("Mischungen mit dem besten Ergebnis: " + bestSolutions);
Hier sehen Sie für alle
Fälle noch mal den
Originalcode.
Wir haben schon mal angefangen.
Allerdings brauchen wir Ihre Hilfe,
um die Funktion fertigzustellen.
Den nächsten Schritt wollen wir gemeinsam gehen. Das Ziel ist eine Funktion, die ein
Array mit den Seifenblasenmischungen erstellt, deren Messergebnis dem Höchststand
entspricht (und weil es mehr als eine Mischung geben kann, verwenden wir hier ein Array).
Dieser Funktion übergeben wir das scores-Array und zusätzlich die zuvor mit der Funktion
printAndGetHighScore berechnete Variable highScore. Stellen Sie den unten stehenden
Code fertig. Die Lösung finden Sie auf der nächsten Seite – aber nicht abgucken! Versuchen
Sie es zuerst allein, damit Sie auch etwas lernen.
Spitzen Sie Ihren Bleistift

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.