# Using recursive!

Tell us what’s happening:

how to solve this: Write a recursive function, `sum(arr, n)` , that returns the sum of the first `n` elements of an array `arr` .

``````
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
}

``````

User Agent is: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15`.

Challenge: Replace Loops using Recursion

A good first step is looking at their example for multiplication and modifying it so that it works for addition, i.e (arr, n - 1) * arr[n - 1] => (arr, n - 1) + arr[n - 1].
Also realize that returning 1 won’t give you the desired outcome for recursing w/ addition.

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

Recursion is tricky to understand. I wrote a blog post about it, sort of deconstructing the process, and the thought process behind it.

https://portfoliostuff-parenttobias.codeanyapp.com/2020/01/29/recursion-all-the-way-down/

I think you need to fix the sintax issues here

you can’t use `+=` on something that is not a variable

but you can use `+`

`arr([n-1)` is wrong first because you have mismatched parenthesis, second because to access an element in an array you need to use bracket notation

1 Like