# Javascript Recursion,

Tell us what’s happening:
Describe your issue in detail here.

Can’t seem to fully wrap my head around how recursion works and was wondering if I could get someone else’s take on it.
Specifically the “return sum(arr, n - 1) + arr[n - 1]” line

``````  **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/96.0.4664.110 Safari/537.36`

Challenge: Replace Loops using Recursion

Link to the challenge:

There are a lot of threads on this, so do search the forum, there are a lot of different explanations and detailed breakdowns which should help a lot.

Just to start you off, say your array (`arr`) is `[1,2,3,4,5]`.

Look at the the function body:

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

Substitute in actual numbers.

What is the return value of this?

``````sum(arr, 0)
``````

Now you know that, what is the return value of this function?

``````sum(arr, 1)
``````

Now you know that, what is the return value of this function?

``````sum(arr, 2)
``````

Now you know that, what is the return value of this function:

``````sum(arr, 3)
``````

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.