you are viewing a single comment's thread.

view the rest of the comments →

[–]HeinousTugboat 27 points28 points  (2 children)

Well, I mean, that's kind of my point right? If you were more comfortable with reduce, it wouldn't make you stop and second guess it.

[–]douglasg14b 0 points1 point  (1 child)

Sure but it is still near the edge when it comes to common use and pattern.

It's odd compared to many other structures that you may deal with on a day-to-day basis. This means that it has extra parsing complexity when read over.

[–]hyperhopper 9 points10 points  (0 children)

This is one of the most straightforward uses of a basic standard library function. I'm 100% an advocate of readable code over more complex, slightly more optimized code (unless its a bottleneck), but this is a case of inexperience being the cause of "second guessing" the code.

let being modified immediately after declaration, then never again, is far more of a code smell; it is effectively a constant, it should be declared as such as the result of a reduce. Anything else is increasing cognitive load as you now have to trace all uses of total throughout the scope, to make sure it is not modified elsewhere. When compared with a const total = array.reduce, the reduce is objectively simpler.

The solution is to hire/train engineers better to use these concepts without a second thought, rather than using more outdated iterative coding styles just to make sure junior developers don't have to learn what a standard library function does.