const writeText = function(word, n) {
if(n >= 5) {
return '';
}
n = n + 1;
return word + writeText(word + n);
};
debugger;
writeText('hello', 1);
我想编写一个使用递归返回“ hello1”,“ hello2”,...“ hello5”的代码。
我的代码无法正常工作,因此我使用调试器查看问题所在。它显示在第一次递归调用之后,n变为未定义。谁能帮我一下,看看这段代码有什么问题吗?
最佳答案
一些提示:
使用递归调用时,最好使用命名函数而不是函数表达式,因为名称不会随函数的赋值而改变。这对于递归调用(可能会调用未知函数)是必需的。
如果该值大于5
,则退出函数。
您需要显示n
的实际值(可能还需要换行)。
用单词和递增值的第二个参数调用该函数。
function writeText(word, n) {
if (n > 5) {
return '';
}
return word + n + '\n' + writeText(word, n + 1);
};
console.log(writeText('hello', 1));
关于javascript - Javascript递归示例麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46998345/