Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Tell us what’s happening:

// running tests
Your studentMsg function should return the correct message based on the student’s score and the class average.
// tests completed
// console output
Class average: 71.7. Your grade: F. You failed the course.
Class average: 50.8. Your grade: A++. You passed the course.

Why is the solution not accepted? Should I have a telepathic power to guess what solution was meant here? I also tried console.log(studentMsg([56, 23, 89, 42, 75, 11, 68, 34, 91, 19], 100));

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) {
  getAverage(totalScores);
  getGrade(studentScore);

  if (hasPassingGrade(getAverage(totalScores))) {
    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));

// User Editable Region


Your browser information:

User Agent is: Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) 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

Why are you checking the average of all students’ grades to determine if a single student has passed the course? Also, your conditional statement is back-to-front (i.e. it returns ‘you passed the course’ in case of a fail and vice versa).

Also, why do you have these two lines of code in your function (above your conditional statement)?

getAverage(totalScores);
getGrade(studentScore);

Your conditional statement is determining the function output on whether the average of all student scores is a passing grade or not. It should rely only on whether or not the individual student’s score is passing.

These two lines of code (directly above that conditional statement), serve no purpose in your function. They are redundant. You use these inside your return statement, but there’s no need for them to be here too:

getAverage(totalScores);
getGrade(studentScore);

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