Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Tell us what’s happening:

Hi, could you help me find out what am I missing?
This is where I am:
function studentMsg(totalScores, studentScore) {
if (hasPassingGrade==true) {
return “Class average: " + getAverage + “Your grade: " + getGrade +”. You passed the course.”;
} else {
return “Class average: " + getAverage + “Your grade: " + getGrade +”. You failed the course.”;
}
}
console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37));
"Your function call of studentMsg … You failed the course. "

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 + "Your grade: " + getGrade +". You passed the course.";
  } else {
    return "Class average: " + getAverage + "Your grade: " + getGrade +". You failed 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/128.0.0.0 Safari/537.36

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 4

hi there,

when you write the name of a function like getAverage like this (or as you wrote getGrade), you are not actually calling it. To call it, you have to give it an argument in parenthesis.
Same issue with the way you wrote hasPassingGrade.

Oh, okay, thank you!
I have corrected as you said, but it still says: " 1. Your function call of studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37) should return the following message: "Class average: 71.7. Your grade: F. You failed the course."", after resetting the lesson. What should I double check?

function studentMsg(totalScores, studentScore) {
 if (hasPassingGrade(score)==true) {
    return "Class average: " + getAverage(scores) + "Your grade: " + getGrade(score) +". You passed the course.";
  } else {
    return "Class average: " + getAverage(scores) + "Your grade: " + getGrade(score) +". You failed the course.";
  }
}
}
console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37));

Check the output with the expected text. Hint: it looks like the text for each is missing a period.

i think you are missing the period after the value of the class average? (well, a period and one space)

still not accepted:

function studentMsg(totalScores, studentScore) {
if (hasPassingGrade(score)==true) {
    return "Class average: " + getAverage(totalScores) + ". Your grade: " + getGrade(studentScore) +". You passed the course.";
  } else {
    return "Class average: " + getAverage(totalScores) + ". Your grade: " + getGrade(studentScore) +". You failed the course.";
  }
}
console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37));

Hi @imola

Edit: The condition will always evaluate to false.

Oh man, finally got it XD
Thank you so much! Is it always going to be this difficult or am I the problem?

yes it is going to be difficult.
try to pay attention to details.

1 Like