Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
递归JavaScript中的问题_Javascript_Arrays - Fatal编程技术网

递归JavaScript中的问题

递归JavaScript中的问题,javascript,arrays,Javascript,Arrays,我是JavaScript的初学者,想知道将倒计时(n-1)赋值给countArray有什么意义,以及为什么我们不使用push()而不是unshift()解释 函数倒计时(n){ if(n

我是JavaScript的初学者,想知道将
倒计时(n-1)
赋值给
countArray
有什么意义,以及为什么我们不使用
push()
而不是
unshift()解释

函数倒计时(n){
if(n<1){
返回[];
}否则{
var countArray=倒计时(n-1);
countArray.unshift(n);
返回计数数组;
}
}

console.log(倒计时(5));//[5,4,3,2,1]
这里你给出一个像5这样的数字,它将创建一个像[5,4,3,2,1]这样的逆序数组

Unshift基本上是将元素放在数组的第一个位置

让我们一步一步走

首先,它将检查5
倒计时(n-1)
调用倒计时函数,值
n
递减1。例如,如果您的第一个调用是
倒计时(5)
,当遇到行
倒计时(n-1)
时,将使用值4-(倒计时(4))调用倒计时

这将一直持续到n的值小于0,此时函数返回空数组


unshift
从数组中删除值,而
push
将值添加到数组中。这段代码会逐渐清空数组,这就是为什么会使用unshift。

你读过vs.的文档吗?你能解释一下这一行的作用吗:“var countArray=countdown(n-1);”它将调用
countdown(n-1)
的结果赋给一个名为
countArray