Basic JavaScript: Replace Loops using RecursionPassed

In the following code I cant seem to conceptualize the "multiply(arr, n-1) + arr[n - 1]… I understand the arr[n - 1] is due to the fact the arr starts at [0], and I understand you are subtracting 1 every time, but the fact that the function calls itself before doing anything else is throwing me off. I can’t seem to see where the recursive function holds a value and waits for the new value to multiply itself by. An example like this makes a lot more sense to me…

function sumRange(num){
if ( num === 1) return 1;
return num = sumRange(num - 1);
}

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 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36.

Challenge: Replace Loops using Recursion

Link to the challenge:

Hey @Backpack!

Recursion trips up alot of people at first including myself when I first learned it. When you hear a function that recalls itself it might seem like magic but there is something going on in your computer.

I would suggest watching these two videos on recursion and call stacks by colt steele. I think he does a great job explaining how recursion works with simple examples.

Hope that helps!

Happy coding!