# JS Recursion explanation

Can someone explain to me how the recursion function works in the curriculum.

This is my code:

function sum(arr, n){
if (n <=0){
return arr;
}
else {
return sum(arr, n-1) + arr[n];
}
}

So this completes the challenge and i passed it, i’m just not quite sure how the value of 5 gets output when sum([2,3,4], 1) and the value of 9 gets output when sum([2,3,4], 2).

Any explanations would be greatly appreciated! I haven’t done these challenges, but from the code you provided, the function returns the sum of elements of an array from index of n to 0 by decreasing the value of n by 1, so
The first part of function `if(n<=0) return arr`, simply means return the value of array at index 0 if the value of n is less or equal to 0
For example `arr = [2,3,4]` , then `arr = 2`.

The second part, where the recursion ( a function calling itself), is,
i.e `return sum(arr, n-1) + arr[n]`, so for example, if initial value of `n=2`, then
Initially function checks is n<=0, no, it moves to the else block
`return sum (arr, 2-1) + arr` same as
`return sum(arr, 1) + arr` where `n=1`, checks again `if n<=0`, no, moves to else block
`return sum(arr, 1-1) + arr + arr`, same as
`return sum(arr, 0) + arr + arr` , here n=0, therefore
`return arr + arr + arr` same as
`return 2 + 3 + 4 => 9`

Hopefully you can understand my explanation, if not some one else may explain in better

1 Like