DEV Community

Discussion on: You don't need Array.reduce()

Collapse
 
enriquemorenotent profile image
Enrique Moreno Tent

Your first example can be solved like this:

add = (a, b) => a + b
array.reduce(add, 0);
Enter fullscreen mode Exit fullscreen mode

Your second example can be solved like this:

getDist = (obj, type) => type in obj ? obj[type] : 0

addTrip = (acc, trip) => ({ ...acc,
    ...{[trip.type]: (getDist(acc, trip.type) + trip.dist)}
})

trips.reduce(add, {})
Enter fullscreen mode Exit fullscreen mode

Both example look easier with reduce, I think

Collapse
 
trusktr profile image
Joe Pea

Those are shorter, but at a glance it still takes me more time to understand it than the for..of loops. Maybe it's just how my mind is trained.

Collapse
 
ivanperez profile image
Iván Pérez

You are creating one object per iteration! This can't perform well with large arrays...