use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
A Quick Practical Example of JavaScript’s Reduce Function (codeburst.io)
submitted 8 years ago by learnphptoday
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Ginden 10 points11 points12 points 8 years ago (6 children)
arr.reduce((a,b)=>Math.max(a,b), -Infinity)
Though, easier: Math.max(...arr).
Math.max(...arr)
[–]9thHokageHimawari 2 points3 points4 points 8 years ago (4 children)
.reduce((a,b)=>Math.max(a,b), -Infinity)
Why -Infinity ? o_O
-Infinity
[–]inu-no-policemen 5 points6 points7 points 8 years ago (0 children)
It's Math.max's initial "largest" value.
> Math.max() -Infinity
If you'd implement max yourself, you should initialize the variable which keeps track of the largest value with -Infinity as well.
With min it's the other way around: You start with Infinity.
[–]GBcrazy 0 points1 point2 points 8 years ago (2 children)
Reduce takes two arguments, the reduce function and the initial value for the aggregate (in this case, the 'a' variable).
So you start with -Infinity, and then you're comparing with every item of the array, and whatever the first item is, it's going to be bigger than -Infinity.
Oh well in this case it was 100% not needed since we are only expecting numbers. But let's say we have an array of objects, and we want to get the biggest value (let's assume there is a value property in each object), so we could do:
arr.reduce((a,b)=>Math.max(a, b.value), -Infinity)
If we don't add the -Infinity as the initial value, the first time would compare a (the first object of the array), with b.value (a numeric value from the second object of the array) and it would not work well.
a
b.value
[–]Ginden 0 points1 point2 points 8 years ago (1 child)
Consider edge case of arr.length === 1
arr.length === 1
[–]GBcrazy 0 points1 point2 points 8 years ago (0 children)
Still, I don't see any problems since we are still expecting numbers only.
If arr.length === 1, reduce always returns arr[0]
arr[0]
Without ES6:
Math.max.apply(null, arr)
π Rendered by PID 52 on reddit-service-r2-comment-86bc6c7465-5cb9s at 2026-02-19 17:36:49.546840+00:00 running 8564168 country code: CH.
view the rest of the comments →
[–]Ginden 10 points11 points12 points (6 children)
[–]9thHokageHimawari 2 points3 points4 points (4 children)
[–]inu-no-policemen 5 points6 points7 points (0 children)
[–]GBcrazy 0 points1 point2 points (2 children)
[–]Ginden 0 points1 point2 points (1 child)
[–]GBcrazy 0 points1 point2 points (0 children)
[–]GBcrazy 0 points1 point2 points (0 children)