Need some detail explanation

Tell us what’s happening:
I can’t understand why does it needs to be n-1 . Plz help.
The more thorough the better. Help appreciated

Note : As I am busy with my part time job I won’t be able to respond in time . I would be grateful to receive a detail explanation.

Your code so far

function sum(arr, n) {
// Only change code below this line
if (n <= 0){
return 0;
} else {
return sum(arr,n-1) + arr[n-1]
// Only change code above this line

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: Replace Loops using Recursion

Link to the challenge:

I guess a way to get this is by examples and extension of behavior.

sum([1,2], 0) //returns 0, for any array
sum([1,2], 1)
// n>0
// executes sum([1,2], 0]) +arr[0]
It means it returns 0 + 1

You can now try [1,2], 2. But the last statement should be

 sum([1,2], 0]) + arr[1] + arr[0]

As a sidenote, I’ve never seen recursion in code, and some people say it’s even slow. But anyways, that’s one way to start off.

1 Like