Your first example can be solved like this:
add = (a, b) => a + b array.reduce(add, 0);
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, {})
Both example look easier with reduce, I think
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.
You are creating one object per iteration! This can't perform well with large arrays...
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Your first example can be solved like this:
Your second example can be solved like this:
Both example look easier with reduce, I think
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.
You are creating one object per iteration! This can't perform well with large arrays...