He revisado las otras publicaciones sobre el desbordamiento de la pila, y como se mencionó, estoy tratando de encontrar la suma de una matriz usando recursividad y si son todos los números, es decir, [2, 6, 11, 4, 13, 5] funciona bien pero si en la matriz hay letras, es decir, ["a", "b", "c"] agrega un 0 al final dando "abc0" quitando el 0 después de que el retorno devuelve abcundefined en lugar de devolver 0 intenté devolver la matriz, que funciona para la versión ["a","b","c"] pero en [2, 6, 11, 4, 13, 5] devuelve concat en lugar de suma. Gracias de antemano por su tiempo y ayuda. =)
function calculateSumRecursion(array) { console.log(array) if(array.length === 0 ) return 0 return array[0]+calculateSumRecursion(array.slice(1)) }Si piensas eso, puedes detenerte si hay un elemento.
function calculateSumRecursion(array) { // just to improve the basic logic, there can be other cases which can be handled ie if the array is empty. if ( array.length === 1 ) array[0] return array[0] + calculateSumRecursion( array.slice(1) ) }Puede resolver esto simplemente cambiando la condición de parada a 1 elemento.
function calculateSumRecursion(array) { if (array.length < 1) throw "Can't calculate a sum of empty array"; if (array.length === 1) return array[0] return array[0] + calculateSumRecursion(array.slice(1)) } array = [1, 2, 3, 4, 5, 6] console.log(calculateSumRecursion(array)) array = ["a", "b", "c", "d", "e"] console.log(calculateSumRecursion(array))