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)