Javascript 多方法递归解释倒计时函数
我正在尝试编写一个递归,它将创建一个倒计时数组。函数应在Javascript 多方法递归解释倒计时函数,javascript,recursion,Javascript,Recursion,我正在尝试编写一个递归,它将创建一个倒计时数组。函数应在myArray参数中获取一个数组,并根据n参数将数字n追加到1。例如,使用n=5调用此函数将在数组中填充[5,4,3,2,1]。您的函数必须通过调用自身来使用递归,并且不得使用任何类型的循环 似乎有多种方法可以编写递归,是否有一种普遍接受且易于阅读的方法 function countdown(myArray, n){ if (n>=1) { myArray = countdown(myArray, n-1);
myArray
参数中获取一个数组,并根据n
参数将数字n
追加到1。例如,使用n=5
调用此函数将在数组中填充[5,4,3,2,1]
。您的函数必须通过调用自身来使用递归,并且不得使用任何类型的循环
似乎有多种方法可以编写递归,是否有一种普遍接受且易于阅读的方法
function countdown(myArray, n){
if (n>=1) {
myArray = countdown(myArray, n-1);
myArray.unshift(n);
}
return myArray;
}
function countdown(myArray, n){
if (n<=0) {
return;
} else {
myArray.push(n);
countdown(myArray,n-1);
}
}
函数倒计时(myArray,n){
如果(n>=1){
myArray=倒计时(myArray,n-1);
myArray.unshift(n);
}
返回myArray;
}
函数倒计时(myArray,n){
if(n如果您将else分支添加到第一个函数中,并将return移动到两个分支中(因此不会改变其含义):
现在反转if语句(交换条件和分支):
if(n我认为returnmyarray
在else
语句中导致整个函数退出是错误的吗?
if (n>=1) {
myArray = countdown(myArray, n-1);
myArray.unshift(n);
return myArray;
} else {
return myArray;
}
if(n <= 0) {
return myArray;
} else {
myArray = countdown(myArray, n-1);
myArray.unshift(n);
return myArray;
}