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/

10-09 05:38