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.

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 (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.