Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Tell us what’s happening:

I’m not sure if my template literal is incorrect:
function studentMsg(totalScores, studentScore) {
const total = getAverage(totalScores);
const studentScore = getGrade(studentScore);

if(hasPassingGrade(studentScore){
return Class average: ${total}. Your grade: ${studentScore}. You passed the course.
}else{
return Class average: ${total}. Your grade: ${studentScore}. 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) {
 const total = getAverage(totalScores);
 const studentScore = getGrade(studentScore);

 if(hasPassingGrade(studentScore){
   return `Class average: ${total}. Your grade: ${studentScore}. You passed the course.`
 }else{
   return `Class average: ${total}. Your grade: ${studentScore}. 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/131.0.0.0 Safari/537.36

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 4

You are missing a parentheses on this line. (Make sure to match them)

Edit: as Jeremy notes below you have one mistake in the template literals (check your punctuation). Also I would not place a semi colon after the } that closes out the else block of code.

Yes. One of your template literals is incorrect

I’m still receiving an error. For the template literal was it the missing period or was there something else missing:

function studentMsg(totalScores, studentScore) {
 const total = getAverage(totalScores);
 const studentScore = getGrade(studentScore);

 if(hasPassingGrade(studentScore)){
   return `Class average: ${total}. Your grade: ${studentScore}. You passed the course.`
 }else{
   return `Class average: ${total}. Your grade: ${studentScore}. You failed the course.`
 }
}
console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37));

Hi there!

While posting your code here on the forum, correctly preform your code using three back ticks (```) on a separate line before and after your code.

hasPassingGrade also wants a number, not a letter

Change the above variable name studentScore to something else, because it’s already been declared as a function parameter. Then also correct it within both returning strings. Your code will pass

2 Likes