# Basic JavaScript - Replace Loops using Recursion

### Tell us what’s happening:

Okay, so I got the code right, but what I don’t understand is, why does

(`sum([2, 3, 4], 1)` should equal 2)

I thought, we start counting from 0. so then, should not the answer would be 5? Because 2+3=5. Please, I try asking ChatGPT for hours and still could not be satisfied with any explanation.

``````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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0`

### Challenge Information:

Basic JavaScript - Replace Loops using Recursion

I have spoilered your solution as we try to avoid having complete solutions posted on the forum.

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

This is what the function does. So…

`sum([2, 3, 4], 1)` should equal 2

… is correct. It is the sum of the first term only. Zero-based indexing is irrelevant in the context of the function description. However, as the function calculates the sum, it uses `n-1` to account for this.

2 Likes

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