xxxxxxxxxx
function sum(n) {
if (n < 1) return 0; // exit condition
return n + sum(n - 1); // return value plus result of recursive call
}
console.log(sum(3));
xxxxxxxxxx
// Write a recursive method that returns the sum of all elements in an array
function recSum(nums) {
if (nums.length === 1 ) {
return nums[0];
}
if (nums.length === 0 ) {
return 0;
}
let sum = nums[0] + recSum(nums.slice(1,nums.length));
return sum;
}
xxxxxxxxxx
var sum = function(array) {
return (array.length === 0) ? 0 : array[0] + sum(array.slice(1));
}
// or in ES6
var sum = (array) => (array.length === 0) ? 0 : array[0] + sum(array.slice(1));
// Test cases
sum([1,2,3]); // 6
var s = [1,2,3];
sum(s); // 6
sum(s); // 6