Review JavaScript Fundamentals by Building a Gradebook App - Step 3

Tell us what’s happening:

My code returns the expected Boolean value for each call. Yet, it doesn’t pass.

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";
  }
}


// User Editable Region

function hasPassingGrade(score) {
  if (score >= 60) {
    return "true";
  } else if (score < 60) {
    return "false";
  }
}


console.log(hasPassingGrade(100));
console.log(hasPassingGrade(53));
console.log(hasPassingGrade(87));

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

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 3

Hi there and welcome to our community!

Your function is not returning a Boolean. It’s returning a string. Remove the quote marks and it will be returning a Boolean.

1 Like

It needs to check if getGrade function returns F or not. Do not compare with numbers. If getGrade(score) returns an “F” then it means hasPassingGrade needs to return false.