为什么我的函数返回未定义,什么时候应该返回一个数字?
我试图在一个网站上解决挑战,我的代码表现得很奇怪......它返回未定义......有趣的是:如果我在 return 语句之前打印“sum”的值,它是控制台中的正确值.. 。 任何帮助都是极好的
function digital_root(n) {
let text = String(n);
let sum = 0;
for (let i = 0; i < text.length; i++) {
sum += Number(text[i]);
}
if (String(sum).length > 1) {
digital_root(sum);
} else {
return sum;
}
}
let score = digital_root(456);
回答
确保向上传播递归返回值。如果您在digital_root()没有returning 子结果的情况下调用,则父调用返回undefined。
if (String(sum).length > 1) {
return digital_root(sum);
}