Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Array Iteration Methods Combining Array Methods Combining filter() and reduce()

Ravel Oliveira
seal-mask
.a{fill-rule:evenodd;}techdegree
Ravel Oliveira
Front End Web Development Techdegree Student 10,334 Points

Why am i getting the 'Bummer: Both the `reduce` and `filter` methods have not been called yet.' ERROR?

I tested my code in the console and it worked by getting the result 9.47, but when i try to check the exercise it send me the error "Bummer: Both the reduce and filter methods have not been called yet" and i dont know why. I used the code below:

groceryTotal = purchaseItems .filter(item => item.dept === 'groceries') .reduce((total, itemPrice) => total + itemPrice.price, 0).toFixed(2);

app.js
const purchaseItems = [
    {
        name: 'apples',
        dept: 'groceries',
        price: 2.49
    },
    {
        name: 'bread',
        dept: 'groceries',
        price: 2.99
    },
    {
        name: 'batteries',
        dept: 'electronics',
        price: 5.80
    },
    {
        name: 'eggs',
        dept: 'groceries',
        price: 3.99
    },
    {
        name: 't-shirts',
        dept: 'apparel',
        price: 9.99
    }
];
let groceryTotal;

// groceryTotal should be: 9.47
// Write your code below
groceryTotal = purchaseItems
  .filter(item => item.dept === 'groceries')
  .reduce((total, itemPrice) => total + itemPrice.price, 0).toFixed(2);

1 Answer

Travis Alstrand
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Travis Alstrand
Treehouse Project Reviewer

Hi there Ravel Oliveira 👋

I was toying around with your code for a bit and realized it was the .toFixed(2) being added to the end that was throwing the whole thing off. After removing that your code worked perfectly

groceryTotal = purchaseItems
  .filter(item => item.dept === 'groceries')
  .reduce((total, itemPrice) => total + itemPrice.price, 0);

Unfortunately, it seems it's another scenario where a simple addition of something (or sometimes a lack of something) was triggering the failure, but the error message provided was not helpful in that scenario. Sorry for that inconvenience!

Nice work!