小编Fer*_*osd的帖子

无法理解 freeCodeCamp 中的 JS 递归倒计时函数

所以,我已经理解了JavaScript 中递归的概念(有一个函数可以循环自身,直到达到基本条件,此时它停止并返回最终结果),但我有一点当我将其应用到尝试应用它来创建数组的实际语法时,我感到头疼。

\n

让我们使用freeCodeCamp 的倒计时练习作为示例。这是正确的结果:

\n
function countdown(n) {\n  if (n < 1) {\n    return [];\n  } else {\n    const arr = countdown(n - 1);\n    arr.unshift(n);\n    return arr;\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这里的想法显然是有一个函数从给定的n倒数到 1。我理解这个想法,但我有几个问题:

\n

1 -为什么将数组声明为常量分配给递归调用?数组不应该更好地在外部声明为变量(因为它会更改值)\xe2\x80\x93 并且其当前位置不意味着每次发生递归时都会声明(并覆盖)它?

\n

2 -我得到了当前值的不变,但为什么它是在递归调用之后声明的?难道它不应该放置在之前(上面一行)以便在函数循环本身之前取消移位值吗?

\n

3 -同样,为什么 …

javascript arrays recursion loops

3
推荐指数
1
解决办法
341
查看次数

标签 统计

arrays ×1

javascript ×1

loops ×1

recursion ×1