Tell us what’s happening:
The second parameter of the studentMsg function is a bit confusing. If we already pass the average number as a parameter, there’s no need to calculate it again inside the function.
Your code so far
function getAverage(scores){
let numberofSubject=scores.length;
let averageScore;
let sum=0;
for(let s of scores){
sum+=s;
}
averageScore= sum/numberofSubject;
return averageScore;
}
let sAvrageNum=getAverage([92, 88, 12, 77, 57, 100, 67, 38, 97, 89]);
let grade;
function getGrade(score){
let scoreNum=score;
if (scoreNum== 100) {
grade = "A+";
}
else if (scoreNum>= 90 && scoreNum<= 99) {
grade = "A";
} else if (scoreNum >= 80 && scoreNum<=89) {
grade = "B";
} else if (scoreNum>= 70 && scoreNum<= 79) {
grade = "C";
}
else if (scoreNum>= 60 && scoreNum<= 69) {
grade = "D";
} else if (scoreNum>= 0 && scoreNum<= 59) {
grade = "F";
}
return grade;
}
let studentGrade=getGrade(sAvrageNum);
function hasPassingGrade(scores){
return getGrade(scores) !== "F";
}
function studentMsg(scoreArr){
let avScore=getAverage(scoreArr);
let grade=getGrade(avScore);
return grade!=='F'
?`Class average: ${avScore}. Your grade: ${grade}.You passed the course.`
:`Class average: ${avScore}.Your grade: ${grade} You failed the course.`;
}
console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89]));
console.log(studentMsg([56, 23, 89, 42, 75, 11, 68, 34, 91, 19]));
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Challenge Information:
Build a Gradebook App - Build a Gradebook App