## 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.

# How does the Reduce Method Works to compare different objects' common factor?

Hello everyone, I just worked on the problem in the video for the comparison between different products' prices and here is my code: const products = [ { name: 'hard drive', price: 59.99 }, { name: 'lighbulbs', price: 2.59 }, { name: 'paper towels', price: 6.99 }, { name: 'flatscreen monitor', price: 159.99 }, { name: 'cable ties', price: 19.99 }, { name: 'ballpoint pens', price: 4.49 }, ];

```// Result: { name: 'paper towels', price: 6.99 }
```

const towel = products.filter(product => product.price<10) .reduce((highest, product) =>{ if(highest.price> product.price){ return highest; } return product; }); console.log(towel); I wonder how the reduce method works to get the highest price. Could anyone please explain it to me? Thank you!

The "reduce" function calls the function provided for each element in the array.:

```if (highest.price > product.price) {  // is "highest" still the one with the highest price?
return highest;                   // yes, so return it
}
return product;                       // no, make the new one the "highest"
```

Where "highest" is the item carried over from the last cycle, and "product" is the current one being compared. It simply returns the one with the highest price each time.

Hi Steven, I am blur, I still couldnâ€™t understand this part. What â€śhighest.priceâ€ť does here? Does it define as max value? After the filter method, I should have all products with price lower than \$10. Can I use Math.max method to reduce?

The term "highest.price" accesses the price value on the object currently considered to have the highest.

You could use Math.max in the comparison expression, but it would make it more complicated than it is now.

Hello Steven Parker , I too am having a lot of trouble understanding "highest.price" ... Is this supposed to be the accumulator? How does it know which is the highest price? Is this storing each price as it runs through the array? This doesn't seemed to be explained well in the video.

The accumulator is "highest". But the "price" property is being used as the value for comparison.