Algoritmo para la suma recursiva de todos los dígitos de un número. Ejemplo: 942 --> 9 + 4 + 2 = 15 --> 1 + 5 = 6.
¿Alguien podría decirme por qué hay una suma correcta en la consola cuando la imprimo por console.log pero cuando quiero regresar no está definida?
let sum = 0; const sumOfDigits = (num) => { let number = num.toString(); if (number.length > 1) { sum = 0; [...number].forEach((digit) => { sum += Number(digit); }); sumOfDigits(sum); } else { console.log(sum); return sum; } }; console.log(sumOfDigits(942));No devuelves el valor de todas las llamadas.
Cambiar sumOfDigits(sum); para return sumOfDigits(sum); como abajo
let sum = 0; const sumOfDigits = (num) => { let number = num.toString(); if (number.length > 1) { sum = 0; [...number].forEach((digit) => { sum += Number(digit); }); return sumOfDigits(sum); } else { console.log(sum); return sum; } }; console.log(sumOfDigits(942));