Javascript 从函数中的if语句返回,给出未定义的
我的假设是if语句第一部分中的返回将破坏函数并返回n,但它始终给出未定义的值。如果我使用console.log n,它会给出正确的内容。我错过了什么吗 谢谢大家Javascript 从函数中的if语句返回,给出未定义的,javascript,if-statement,recursion,Javascript,If Statement,Recursion,我的假设是if语句第一部分中的返回将破坏函数并返回n,但它始终给出未定义的值。如果我使用console.log n,它会给出正确的内容。我错过了什么吗 谢谢大家 function digital_root(n) { if(n.toString().length === 1){ console.log(n) return true; }else{ var digits = (""+n).split(""); thing = digits.reduce((
function digital_root(n) {
if(n.toString().length === 1){
console.log(n)
return true;
}else{
var digits = (""+n).split("");
thing = digits.reduce((a, b) => Number(a) + Number(b), 0);
digital_root(thing)
}
}
digital_root(942)
在递归中不返回,这意味着它将返回未定义的
return digital_root(thing)
因为您的递归没有返回,所以您必须在
else
station中返回一些内容<代码>返回数字_根(thing)代码>就可以了!。。。当然,OP还需要从最里面的函数调用返回n
(而不是true
)。太棒了!非常感谢你。我仍在努力掌握Javascript递归。。。