javascript - 创建一个得分最高的数组
问题描述
嗨,我对编码很陌生,我正在努力了解基础知识。我有一个函数,它遍历一个包含分数的数组并将它们输入到 topScores 数组中,它们高于该数组中的一个项目。这可能看起来没用,但我想知道为什么它在击中分数数组中的第二个项目后停止。
var scores = [60, 70, 80, 90, 100];
var topScores = [];
function arrayAn (score) {
for (i = 0; i < score.length; i++){
if (score[i] > topScores){
topScores.push(score[i])
}}}
arrayAn(scores)
console.log(topScores) // [60, 70]
解决方案
它在 2 个数字后停止,因为您不再检查单个数字,而是检查数字数组。
- 您正在检查的循环的第一次迭代是:
60 > 没有
什么都没有,因为数组在开始时是空的。topScores 现在是 [60]
- 接下来你正在检查
70 > 60
就是这样,您的 topScores 数组中现在将有 2 个数字。[60,70]
之后,topScores 数组将有超过 1 个数字,因此它将无法检查是否大于您正在检查的数字,因为它现在是一个完整的数组。
为此,您必须在某处添加检查,如果当前分数小于 70,则不要将其添加到最高分数数组中。那么它就会有一些意义。
希望有帮助。
var scores = [60, 70, 80, 90, 100];
var topScores = [];
function arrayAn(score) {
for (i = 0; i < score.length; i++) {
console.log(score[i] + " > " + topScores);
if (score[i] > topScores) {
topScores.push(score[i]);
}
}
}
arrayAn(scores);
console.log(topScores); // [60, 70]