Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Tell us what’s happening:

The message “Class average: 71.7 Your grade: F. You failed the course.” is being printed, but my code is not passing. Why?

Your code so far

function getAverage(scores) {
  let sum = 0;

  for (const score of scores) {
    sum += score;
  }

  return sum / scores.length;
}

function getGrade(score) {
  if (score === 100) {
    return "A++";
  } else if (score >= 90) {
    return "A";
  } else if (score >= 80) {
    return "B";
  } else if (score >= 70) {
    return "C";
  } else if (score >= 60) {
    return "D";
  } else {
    return "F";
  }
}

function hasPassingGrade(score) {
  return getGrade(score) !== "F";
}


// User Editable Region

function studentMsg(totalScores, studentScore) {
   if (hasPassingGrade() != true){

   return ("Class average: "+getAverage(totalScores)+" Your grade: "+getGrade(studentScore)+"."+  " You failed the course.");  
   }
   else {
   return ("Class average: " + getAverage(totalScores) + " Your grade: " + getGrade(studentScore) + ". "+ "You passed the course.");
}

} 
console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37));

// User Editable Region


Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 4

You are missing a period in both results. To compare your output string against the one they want, copy them next to each other vertically (on two separate lines) and check them against each other. I noticed the missing dot but there may be other issues that I didn’t see without a direct side by side comparison.

also this is not doing what you think. the function needs an argument for it to give different results

If (!hasPassingGrade(studentScore)) // Thanks, it worked, but I need to know why we use ! at the start of the argument.

you are not? the argument is studentScore, it doesn’t have the ! there.
If you don’t know what ! does in !hasPassingGrade(studentScore) and use something else, like the expression you were using earlier hasPassingGrade() != true, if fixed adding the argument, will work.

Where did you find !hasPassingGrade(studentScore)? please don’t copy code you don’t know what it means

If you want to learn about !, it’s called the NOT operator