freeCodeCamp Challenge Guide: Replace Loops using Recursion

Replace Loops using Recursion


Hints

Hint 1:

When n <= 0 sum(arr, n) returns 0.

Hint 2:

When n is larger than 0 sum(arr, n) returns sum(arr, n - 1) + arr[n - 1]


Solutions:

(Click to reveal)
function sum(arr, n) {
  if(n <= 0) {
    return 0;
  } else {
    return sum(arr, n - 1) + arr[n - 1];
  }
}

Code Explanation

The if statement checks to see if sum is evaluating the base case, n <= 0, or not. If it is, then sum returns the answer, 0 - the sum of elements from 0 to 0 inclusive. Otherwise, it recurses by evaluating a simpler function call, sum(arr, n - 1). Once that returns it adds a single array element, arr[n - 1], to it and returns that sum.

Resources

20 Likes