Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Tell us what’s happening:

The studentMsg function fails to execute correctly due to multiple implementation errors that prevent it from producing the expected output.
Details of the Issue:

  • Undefined Function Call: The function references hasPassingGrade(score) without providing its definition, leading to a runtime error.
  • Naming Inconsistency: The function is defined as studentMsg, but test cases refer to studentMSG, causing a reference error due to case sensitivity.
  • Incorrect Formatting: The class average is not ro

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 getAverage(scores) {
  let total = 0;
  for (let i = 0; i < scores.length; i++) {
    total += scores[i];
  }
  return (total / scores.length); 
}
function getGrade(score) {
  if (score === 100) return "A++";
  if (score >= 90) return "A";
  if (score >= 80) return "B";
  if (score >= 70) return "C";
  if (score >= 60) return "D";
  return "F";
}
function hasPassingGrade(score){
  return score >= 60;
}
function studentMsg(totalScores, studentScore) {
  let average = getAverage(totalScores);
  let studentGrade = getGrade(studentScore);
  let message= "Class average: " + average.toFixed(1) + ". Your grade: "+ studentGrade + ". ";
 message += hasPassingGrade(studentScore) ? "You passed the course." : "You failed the course.";
 return message;
}
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/139.0.0.0 Safari/537.36

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Please Tell us what’s happening in your own words.

Learning to describe problems is hard, but it is an important part of learning how to code.

Also, the more you say, the more we can help!

I am trying to pass the code for the studentMsg function but it shows there is a problem.

the issue is in step 4

you have a few functions twice, you may want to fix that. in this step you are only adding studentMsg, after you do that, share your code agian please, and we will work on it

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

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

function studentMsg(totalScores, studentScore){

let average = getAverage(totalScores).toFixed(1);

let studentGrade = getGrade(studentScore);

let status = hasPassingGrade(studentScore) ? “You passed the course.” : “You failed the course.”;

return "Class average: " + average + ". Your grade: " + studentGrade + ". " + status;

}

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

Here are some troubleshooting steps you can follow. Focus on one test at a time:

  1. Are there any errors or messages in the console?
  2. What is the requirement of the first failing test?
  3. Check the related User Story and ensure it’s followed precisely.
  4. What line of code implements this?
  5. What is the result of the code and does it match the requirement? (Write the value of a variable to the console at that point in the code if needed.)

If this does not help you solve the problem, please reply with answers to these questions.