Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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_Recursion - Fatal编程技术网

JavaScript递归函数在分配给变量时如何工作?

JavaScript递归函数在分配给变量时如何工作?,javascript,recursion,Javascript,Recursion,您好,我是JavaScript新手,但我不了解递归函数在分配给变量时是如何工作的。下面的代码应该只有两个输出,但它有3个输出 函数数组{ 如果array.length==1{ 返回[array[0][0].toUpperCase+array[0].substr1]; } const res=firstArray.0,-1; console.logres; 返回res; } console.logcapitalizeFirst['car','taco','banana'] TLDR:递归函数将数

您好,我是JavaScript新手,但我不了解递归函数在分配给变量时是如何工作的。下面的代码应该只有两个输出,但它有3个输出

函数数组{ 如果array.length==1{ 返回[array[0][0].toUpperCase+array[0].substr1]; } const res=firstArray.0,-1; console.logres; 返回res; } console.logcapitalizeFirst['car','taco','banana'] TLDR:递归函数将数组的第一个元素作为大写字输出,该大写字等于数组的长度-1,并输出该结果。总输出等于数组长度

数组的长度为3,在基本情况下将返回一个数组。因此res将在递归函数内输出2次,在递归函数外输出1次

如果有一个数组正好是[Car],那么递归函数将返回[Car],并将输出该数组

如果你有一个数组是[car,taco],它将首先通过递归函数,然后收缩到[car],因为这是基本情况,它将返回[car]。这意味着在递归函数中,res=[Car]。由于您有console.logres和return res,[Car]将在递归函数中输出,然后在外部输出

在数组长度为3的场景中,它将在内输出[Car]两次,因为递归函数将继续执行,直到长度为1,这意味着它将命中console.log两次。最后,当返回res时,外部控制台.log将输出[Car]。

如果array.length==1两次为false,那么它将继续两次到console.logres语句,再加上一个最终控制台.logcapitalifest。。…