Functional Programming: Use the reduce Method to Anaylze

Tell us what’s happening:

Try my solution and the output give an error of “Infinity”. Then I tried FCC solution 1 answer and still give an error of “Infinity”. if the code runs correctly, the getRating(watchList) should give an answer of 8.675. I am not sure if this is a bug issue. Please kindly advise.

Kind regards,

Alex

Your code so far

WARNING

The challenge seed code and/or your solution exceeded the maximum length we can port over from the challenge.

You will need to take an additional step here so the code you wrote presents in an easy to read format.

Please copy/paste all the editor code showing in the challenge from where you just linked.

Replace these two sentences with your copied code.
Please leave the ``` line above and the ``` line below,
because they allow your code to properly format in the post.

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36

Challenge: Use the reduce Method to Analyze Data

Link to the challenge:

The solutions both work correctly for me.

Can you post the code that fails?

function getRating(watchList) {


  let nolanMovies = watchList.filter(movie => movie.Director === "Christopher Nolan");

  let nolanMovieRatingTotal = nolanMovies.reduce((total, movie) => {

    total += parseFloat(movie.imdbRating); // parseFloat() convert string to number

    return total;

  }, 0) 

  let nolanMovieCount = nolanMovies.length;

  let averageRating = nolanMovieRatingTotal / nolanMovieCount;

  return averageRating;

}

I did the long way. any suggestions to refactor it to cleaner code or errors in my logic.

I tried restart my login on the google chrome browser into FCC site and reset the coding exercise. It seems to work again for now.

1 Like

You can skip some variables and directly return the result of dividing what reduce returns with the filtered array length. But doing so makes it less obvious what is being returned as opposed to having a variable named averageRating.