Чтобы использовать рекурсию, вам просто нужен базовый случай и способ разбить входные данные на что-то меньшее, чем вы можете рекурсировать.
Сумма массива длины 1 просто arr[0]
верно? Так что это правдоподобный базовый случай. При большем массиве сумма составляет один элемент плюс сумма всех остальных. Так что это ваш другой случай: arr[0] + sum(everything else)
Теперь вы можете написать простую функцию только с этими двумя случаями:
let arr = [1, 2, 3, 4, 5, 6]
function add(arr) {
if (arr.length == 1) return arr[0] // base case
return arr[0] + add(arr.slice(1)) // recurse
}
console.log(add(arr))
Идея настолько проста, что вы можете выразить ее в виде одной строки:
const add = (arr) => arr.length == 1 ? arr[0] : arr[0] + add(arr.slice(1))
console.log(add([1, 2, 3, 4, 5, 6] ))
Конечно, вам может потребоваться лучшая проверка ошибок, но это должно помочь вам начать работу.