通过一本名为“head first javascript programming”的书并进入这个练习示例,但我不太了解它的某些部分。我应该这样做,以便在控制台中显示测试数量和最高分。这是代码。
var scores = [60,58,34,69,46,41,50,50,55,64,31,53,60,52,51,66,57,55,58,54,52,55,52,61,54,48,44,52,44,51,54,69,51,61,18,44];
var output;
var highScore = 0;
for(var i = 0; i < scores.length; i++){
output = "Bubble solution #" + i + " score: " + scores[i];
console.log(output);
if (scores[i] > highScore){
highScore = scores[i];
}
}
console.log("Bubbles tests: " + scores.length);
console.log("Highest bubble score: " + highScore);
现在这段代码确实有效,但我不明白这两行:
scores[i] > highScore
highScore = scores[i]
答案 0 :(得分:4)
目标是知道什么分数最高。
if (scores[i] > highScore){
highScore = scores[i];
}
因此,在迭代每个分数时。我们检查当前的迭代分数是否高于highScore
。如果是这种情况,我们会使用当前分数更新高分。
迭代1
scores[i] = 60
highscore = 0
--> highScore = 60
迭代2
scores[i] = 58
highscore = 60
--> highscore = 60
答案 1 :(得分:1)
if (scores[i] > highScore){
highScore = scores[i];
}
这是存储最高分的逻辑。
在每次迭代的每个迭代中,HighScore
将与当前迭代中的score
进行比较。
如果当前分数高于HighScore,则分数将分配给HighScore变量。
答案 2 :(得分:1)
使用for循环遍历列表中的所有元素。
一开始,您将highScore初始化为0。
在浏览列表时,如果当前元素值大于存储在highScore中的值,则将highScore分配给该元素值,因此在循环结束时,存储在highScore变量中的值将是分数列表中的最大值。
实施例。 在第一次循环迭代中它将是
if(60 > 0) // which is true
highScore = 60; // so assign value 60 to variable highscore
第二次迭代
if(58 > 60) // which is not true
highScore = 58; // so the value of highScore will stay 60
第3次迭代
if(34 > 60) // which is not true
highScore = 34; // so the value of highScore is still 60
第4次迭代:
if(69 > 60) // which is true
highScore = 69; // so the value of highScore becomes 69
。 。 。 等等到列表的末尾。
基本上它会从得分列表中获得最大值,并将其保存到highScore变量中。
所以最后,highScore的价值将是69。