我正在使用递归来反转这个数字。在终止条件下,我将返回结果。但它正在返回“未定义”。 if中的控制台显示正确的输出。
//反转数字
var result= "";
var reverse = function(x) {
if(x == 0){
console.log("result",result);
return result;
}else{
var lastDigit = x % 10;
result += lastDigit;
x = Math.floor(x/10);
reverse(x);
}
};
console.log(reverse(73254));
答案 0 :(得分:1)
如果您没有使用return
从函数返回任何内容,则默认返回undefined
。你必须从else
返回函数,如:
return reverse(x);
工作代码示例:
var result= "";
var reverse = function(x) {
if(x == 0){
console.log("result",result);
return result;
}else{
var lastDigit = x % 10;
result += lastDigit;
x = Math.floor(x/10);
return reverse(x);
}
};
console.log(reverse(73254));
答案 1 :(得分:1)
这是因为你没有回复函数itself
,默认情况下会返回undefined
。
解决方案是返回 reverse(x)
的结果。
此外,您可以像这样简化您的功能:
var reverse = function(x) {
if(x < 10)
return x;
return x % 10 + "" + reverse(Math.floor(x/10));
};
console.log(reverse(73254));
&#13;