【问题标题】:Recursive function that creates an array from 0 to n (JavaScript)创建从 0 到 n 的数组的递归函数(JavaScript)
【发布时间】:2020-02-26 02:01:02
【问题描述】:

我最近阅读了很多关于递归函数的文章,但直到今天我才弄清楚这一点。我想我现在更好地理解了递归。希望我可以帮助仍在苦苦挣扎的其他人:

function count(n) {
    if (n === 1) {
      return [1];
    } else {
      var numbers = count(n - 1); 
      numbers.push(n); 
      return numbers; 
    }
  }

console.log(count(3));

count(3) 的结果将是:[1, 2, 3]

【问题讨论】:

  • 顺便说一句,你不需要别的,因为真实语句部分(statement1)的返回语句。

标签: javascript arrays function recursion


【解决方案1】:

我们将 3 传入count(n)。由于 n 不等于 1,我们直接进入 else 语句。 numbers = count(3 - n)numbers = count(2) 如果我们传入 n。接下来发生的是递归:

由于我们不知道count(2) 到底是什么,我们必须运行它才能弄清楚。所以我们运行count(2)。 n 不等于 1,所以我们再次转到 else 语句。 numbers = count(1)。再次递归。我们为 n 输入 1,这一次函数返回 [1]。 现在,既然我们知道count(1) = [1],我们就能够解决count(2)count(2)numbers = count(1)numbers = [1]。这次我们继续编写代码并输入 n numbers.push(n),即 2。所以 count(2) 返回 [1, 2]。现在,既然我们知道了count(2) 的结果,让我们求解count(3)count(3)numbers = count(2)numbers = [1, 2] 输入我们的结果。现在 push 被激活,瞧,count(3) 的结果是[1, 2, 3]

【讨论】:

  • count(0) 瞧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
  • 2021-04-18
  • 2019-04-25
  • 2011-11-25
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
相关资源
最近更新 更多