【问题标题】:Use Recursion to Create a Countdown | FreeCodeCamp Recursion problem使用递归创建倒计时 | FreeCodeCamp 递归问题
【发布时间】:2023-03-02 22:49:01
【问题描述】:

var a=[];
// Only change code below this line
function countdown(n){
  
  if(n>=1){
    
    countdown(n-1);
    console.log(n);
    a.push(n);
    return a;
  }
  else{
    return [];
  }
}
console.log(countdown(5));

这里想知道调用倒计时功能后为什么n打印成1,2,3,4,5这样的?应该是5,4,3,2,1吧?

【问题讨论】:

  • 因为if之后的第一条语句是countdown(n-1);,所以在任何console.log执行之前
  • a 的意义何在?

标签: javascript arrays function recursion printing


【解决方案1】:

在对countdown(其中n=5)的初始调用中,您递归调用countdown然后打印n

【讨论】:

    【解决方案2】:

    切换console.log(n);countdown(n-1); 的顺序,你会得到预期的行为。

    var a=[];
    // Only change code below this line
    function countdown(n){
      
      if(n>=1){
        
        console.log(n);
        countdown(n-1);
        a.unshift(n);
        return a;
      }
      else{
        return [];
      }
    }
    console.log(countdown(5));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 2016-02-01
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多