Review JavaScript Fundamentals by Building a Gradebook App - Step 4

This is my code and the error I’m getting.

 
  const average = getAverage(totalScores);
  const grade = getAverage(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.")
}
}```
My error: TypeError: Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.

Hi @magdalinemumbi573

You can create a proper formatted help post on the forum by clicking on the Help button.
The button looks like this:
image

Post link to the challenge step

https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/review-js-fundamentals-by-building-a-gradebook-app/step-4

Tell us what’s happening:

I’m getting a type error . Where is the error coming from

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 = getAverage(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/125.0.0.0 Safari/537.36

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 4

Hi @magdalinemumbi573

The getAverage function iterates though the arguments it is passed.

Happy coding

You have using same function getAverage() for both your average and grade variable. You need the function getGrade() for for passing student score.
Also you need to remove extra () parentheses around your both returning strings, And correct the spacing and punctuation within your both strings.

Class average: 71.7. Your grade: F. You failed the course.

Above is the correct output of the strings.

All thanks to Ternary Conditions Operator. Mine went through successfully. Happy Coding!

thanks alot. it passed

1 Like

hey @Assasinsk please try to solve it yourself , this is a review project, if you can’t solve it yourself you should not go forward. Have you opened your own topic?