DEV Community

Discussion on: Need help understanding: Filtering an array of objects in Javascript

Collapse
 
gmartigny profile image
Guillaume Martigny

Just to summarize:

  • forEach if you need to act on every item (display all prices)
    • map same, but return a new array with the new values (add 10% tax to all prices)

  • filter if you need to remove items (get prices under 10$)

  • includes if you need to know if the array contains at least one (does one prices is exactly equal to 10$)
    • some same, but you can use a function as assertion (does one price is under 10$)

  • reduce if you need to transform an array into one value (sum all prices)

ps: Try to never modify a variable (except iterator).

this.filteredRestaurants = this.sortedRestaurants.filter( // ...
Collapse
 
dmfay profile image
Dian Fay

The reduce accumulator doesn't have to be one value -- it's quite useful in places you'd use both filter and map to choose some elements of an array and generate derived values, and you only have to traverse the array once.

Collapse
 
gmartigny profile image
Guillaume Martigny

For large data set I would agree (even tho I never thought of it). But for sub 100 items, the lose in clarity isn't much worth it.