首页 > 解决方案 > 当我将 1 传递给 ni 时,没有得到 [0,1] 我得到 [1]?

问题描述

这是我创建的斐波那契生成器函数,但由于某种原因,我似乎无法获得 1 = [0,1] 的输出。虽然它适用于其他条件。如果有人可以指出我在这里做错了什么。

function bl(n) {
  var output = [];
  var firstNo = 0;
  var secondNo = 1;

  if (n === 0) {
    output.push(0);
  }
  if (n === 1) {
    output.push(0);
    output.push(1);
  } else {
    for (var i = 0; i < n; i++) {
      var sum = firstNo + secondNo;
      firstNo = secondNo;
      secondNo = sum;
      output.push(sum);
    }
    return output;
  }
}
console.log(bl(1));

标签: javascript

解决方案


return output必须针对所有条件执行,所以只需在函数结束时执行它。

function bl(n) {
  var output = [];
  var firstNo = 0;
  var secondNo = 1;

  if (n === 0) {
    output.push(0);
  }
  if (n === 1) {
    output.push(0);
    output.push(1);
  } else {
    for (var i = 0; i < n; i++) {
      var sum = firstNo + secondNo;
      firstNo = secondNo;
      secondNo = sum;
      output.push(sum);
    }
  }
  return output;
}
console.log(bl(1));


推荐阅读