# Replace Loops using Recursion?

Can someone explain to me the last two lines?

Recursion is the concept that a function can be expressed in terms of itself. To help understand this, start by thinking about the following task: multiply the first `n` elements of an array to create the product of those elements. Using a `for` loop, you could do this:

``````  function multiply(arr, n) {
var product = 1;
for (var i = 0; i < n; i++) {
product *= arr[i];
}
return product;
}
``````

However, notice that `multiply(arr, n) == multiply(arr, n - 1) * arr[n - 1]` . That means you can rewrite `multiply` in terms of itself and never need to use a loop.

Suppose that

``````let arr = [1, 2, 4, 5];
``````

The function `multiply(arr, n)` is the product of the first `n` elements of the array `arr`.

However, notice that `multiply(arr, n) == multiply(arr, n - 1) * arr[n - 1]` . That means you can rewrite `multiply` in terms of itself and never need to use a loop.

This is saying that

``````let product = 1 * 2 * 4 * 5;
``````

is the same as

``````let product = (1 * 2 * 4) * 5;
``````
1 Like

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