totally stuck on this one… i can get an array of numbers [ 8.8, 8.6, 9, 8.3 ] using the following:

```
let cnFilms = watchList.filter((val) => {
return val.Director === "Christopher Nolan";
});
let ratings = cnFilms.map((rating) => {
return Number(rating.imdbRating);
});
```

Next, when I try to use reduce, I can get the sum of the array items (34.7) using this:

```
let averageRating = ratings.reduce((total, sum) => {
return total + sum;
});
```

However, if i try to then divide the result by ratings.length, I get:

```
return total + sum / ratings.length; //15.275000000000002
return (total + sum) / ratings.length; //2.9093750000000003
```

the only way I can get the correct figure, which doesn’t pass the test, is by returning the full sum, and then console.logging the returned sum / ratings.length:

```
let averageRating = ratings.reduce((total, sum) => {
return (total + sum);
});
console.log(averageRating / ratings.length); //8.675
```

What am I missing!?

EDIT:

I have now thought about it a bit more, and renamed the averageRating variable to just totalRating and then set the average rating variable to:

```
let averageRating = totalRating / ratings.length;
console.log(averageRating); //8.675
```

probably not the most elegant solution as some of the others shared in the above replies go way over my head at this stage, i’m happy for the moment to just understand whats happening and then once used to doing it a certain way, look into ways to write it in a more short-handed way!