Review JavaScript Fundamentals by Building a Gradebook App - Step 3

Tell us what’s happening:

help i get the following errors

  1. Your hasPassingGrade function should return a boolean value.
  2. Your hasPassingGrade function should return true if the grade is an “A”.
  3. Your hasPassingGrade function should return false if the grade is an “F”.
  4. Your hasPassingGrade function should return true for all passing grades.

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) {
  getGrade(score);
  if (getGrade(score) === "A") {return "true" }
  if (getGrade(score) === "F") {return "false" }
  else {return "true"}
}

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

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 3

Remove the function call.

And you need to return a boolean value.

Can you talk about how you are stuck debugging?

I strongly recommend using conventional formatting here

Hi there and welcome to our community!

Your function is overly verbose. Firstly you don’t need to call getGrade(score) at the top of the function body. Secondly, you can use a single return statement to return a boolean, depending on whether or not the value returned by getGrade(score) is ‘F’.

HINT: “true” and “false” are not boolean. They are strings.

EXAMPLE:

let statement = "this is true"

function isThisTrue(statement) {
  return statement == "this is true"
}

console.log(isThisTrue(statement)) // true

statement = "this is not true"
console.log(isThisTrue(statement)) // false

“true” is String,
true is Boolean