Перед тем, как дать решение, вам необходимо разобраться с областями действия переменных в javascript.
Рассмотрим следующий код:
function myFunction() {
var carName = "Volvo";
//code here CAN use the variable carName
}
function someAnotherFunction(){
console.log(carName);
//code here CANNOT use the variable carName
//It will the error that carName is not defined.
}
//code here CANNOT use the variable carName
Другой случай:
var carName = "Volvo";
function myFunction() {
console.log(carName);
//code here CAN use the variable carName
}
function someAnotherFunction(){
console.log(carName);
//code here CAN use the variable carName
}
console.log('Check my value here again: '+carName);
//code here CAN also use the variable carName
Разница, которую следует здесь отметить, заключается в том, что область видимости переменной ограничена открывающими и закрывающими скобками, в которые она помещена. За пределами закрывающих скобок та же самая переменная не будет видна вне скобок, в которых она была объявлена.
Так же, как вы не можете использовать переменную medium вне скобок, из которой она была объявлена,
Глядя на ваш код, нужно изменить несколько вещей.
- Переместите среднее объявление за скобки, чтобы оно стало видимым.
var average =0;
function gradeAverage() {
for (var i = 0; i < grades.length; i++) {
totalSum += grades[i];
average = totalSum / grades.length;
}
}
А в функции, где вычисляются оценки, необходимо добавить условие, когда среднее значение больше 90.
function letterGrade() {
if (average >= 90) {
document.getElementById("finalGrade").innerHTML += average + " A";
} else if (average >= 80) {
document.getElementById("finalGrade").innerHTML += average + " B";
} else if (average >= 70) {
document.getElementById("finalGrade").innerHTML += average + " C";
} else if (average >= 60) {
document.getElementById("finalGrade").innerHTML += average + " D";
} else {
document.getElementById("finalGrade").innerHTML += average + " F";
}
}
Остальное будет хорошо, как есть.
Надеюсь, этопомогает.