Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Tell us what’s happening:

know is like this pleas any advice and detail solution

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(getGrade) {
   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));
console.log("Class average: 71.7. Your grade: F. You failed the course.")
console.log("class average: 50.8. Your grade: A++ You passed the course")

// 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/125.0.0.0 Safari/537.36

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Re-check your condition.

getGrade is a function name, not a boolean variable, or a function call that return a boolean value.

The condition statement should be checking if the student has passing grade or not.

Hint: there is a hasPassingGrade function defined above.

Also, remove these 2 log lines.

I use haspassingGrade function also i remove 2 log line but still i can’t pass
function studentMsg(totalScores, studentScore) {

if(hasPassingGrade) {

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));

console.log(studentMsg([56, 23, 89, 42, 75, 11, 68, 34, 91, 19], 100));

no you are not, you would need to call it with a value to use it

hasPassingGrade is just the function name.

Take a look at the function definition:

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

This function take one parameter which is the student’s score to check if the sutdent pass or not.

do you have any reference that i can check i don’t understand at all

hasPassingGrade is just the function name.

To use the function hasPassingGrade , you have to pass an argument to it, which is the student score.

For example:

hasPassingGrade(90)

will return true. With

  • hasPassingGrade is the function name
  • 90 is the argument
  • hasPassingGrade(90) is a function call

Another example:

const studentScore = 30;
hasPassingGrade(studentScore);

will return false. With:

  • hasPassingGrade is the function name
  • studentScore is the argument
  • hasPassingGrade(studentScore) is a function call

Now, inside the condition of the if statement has to be a function call, not just a function name

thanks finally i passed

1 Like