Arrow Function Query

Tell us what’s happening:

Your code so far


const sum = (...args) => {
return args.reduce((a, b) => a + b, 0);
}

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36.

Challenge: Use the Rest Parameter with Function Parameters

Link to the challenge:

My question is why did we use 0 in the arrow function ??

return args.reduce((a, b) => a + b, 0);

Hi @junaidshaikh_js!

I have added spoiler tags around your code for those who have not worked on this problem yet.

The 0 in this case represents the initial value for the accumulator parameter, which is a.

The initial value is techinally optional.

MDN answer
A value to use as the first argument to the first call of the callback . If no initialValue is supplied, the first element in the array will be used as the initial accumulator value and skipped as currentValue .

Here is a screenshot of what the code looks like in a debugger with the accumulator set to 0 (take a look at the left side of the pic)

Here is a screenshot of what the code looks like without the initial value

Hope that makes sense.