Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Tell us what’s happening:

I don’t know why my code won’t pass can somebody please help?

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) {
  const average = getAverage(totalScores);
  const grade = getGrade(studentScore);
  if (grade !== "F") {
    return "Class average" + average + ". Your grade" + grade + ". You passed the course.";
  }else {
    return "Class average" + " " + average + ". Your grade" + " " + grade + ". 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/126.0.0.0 Safari/537.36

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Should there be a period at the end here?

Also try using hasPassingGrdae function instead of explicitly checking for F in the if statement

Also check the spacing here. Confirm if the string should have a space or not. Try logging the string to check.

I’m lost, what? I’ve tried using a function in an if statement and it didn’t work? can you give me an example?

I’m not sure why you’re lost? You need to fix the spacing and punctuation in your strings. They should match exactly.

As for how to call a function inside an if, well it is simply like so:
if callThisFunction() { }

There… still nothing now I don’t know what else to do?

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

Everything seemed okay then this message appeared:

Your function call of studentMsg([56, 23, 89, 42, 75, 11, 68, 34, 91, 19], 100) should return the following message: "Class average: 50.8. Your grade: A++. You passed the course."

This is my code so far:

function studentMsg(totalScores, studentScore) {
  const average = getAverage(totalScores);
  const grade = getGrade(studentScore);
  let score;
  if (hasPassingGrade(score)) {
    return "Class average: " + average + ". Your grade: " + grade + ". You passed the course.";
  }else {
    return "Class average: " + average + ". Your grade: " + grade + ". You failed the course.";
  }

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

I’m lost and confused.

You need to stop using the score variable as it is empty. Instead use the studentScore which was given to you in the function.

Thank You @hbar1st very much.

1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.