抛出未定义的变量

时间:2018-09-16 02:07:42

标签: javascript

这是一个freecodecamp问题,其中字符串参数应乘以num参数。我了解他们提供的其他方法,但是我对这种方法的工作挂了电话。

repeatStringNumTimes("abc", 3);

//should return "abcabcabc"

我试图弄清楚该函数的最后一部分(else语句)如何固有地知道将参数相乘,即使没有指令也是如此。我所看到的方式是:x +(x,y-1)但仍然可以正确返回。

我想念什么?

function repeatStringNumTimes(str, num) {
  if(num < 0)
    return "";
  if(num === 1)
    return str;
  else
    return str + repeatStringNumTimes(str, num - 1);
}

1 个答案:

答案 0 :(得分:1)

这是一种称为“递归”的计算形式。它指的是可以引用自己的函数,因此可以重新启动其循环,直到满足特定条件为止。在这种情况下,该函数将自己递归调用num次,在这种情况下,将对其命令进行简单的重复。