这是一个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);
}
答案 0 :(得分:1)
这是一种称为“递归”的计算形式。它指的是可以引用自己的函数,因此可以重新启动其循环,直到满足特定条件为止。在这种情况下,该函数将自己递归调用num
次,在这种情况下,将对其命令进行简单的重复。