Tell us what’s happening:
Describe your issue in detail here.
Could someone please take a movement to explain more deeply and simplify recursion to me?

Thank you.

**Your code so far**

function sum(arr, n) {
// Only change code below this line
// 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/91.0.4472.164 Safari/537.36

It looks like you haven’t done anything on this challenge yet, so I’ll talk about the example.

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

The idea with recursion is to write the problem in terms of itself.

In this case, multiply(arr, n) is a function that takes an array arr and a number n and returns the product of the first n elements of arr.

Well, the product of the first n elements (say the first 5 elements) is the product of the first n - 1 elements (the first 4 elements) multiplied by the nth element (the 5th element).

So multiply(arr, n) === multiply(arr, n - 1) * arr[n - 1].

But at some point we have to stop. For this example, the ‘base case’ is the simplest version of the problem. When n <= 0, then we say that our product is 1.

The concept of recursion I get it. It calls itself until the condition meets and then stops which is called “base case”. However, the above code line is still a little tricky for me to understand …