javascript - 当我将 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));
解决方案
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));
推荐阅读
- regex - 正则表达式被误解
- angular - 无法在 Angular6 的 Input 属性中提供空间作为值
- ruby-on-rails - 当rails的where子句中没有特定值的记录时如何获取nil对象
- android - 如何在 android .ini 文件中包含其他 .ini 文件?
- android - 打开针对关键字搜索的第一个链接
- java - 如何将字符串解码为相应的地图?
- angular - 如何将基于 Angular 6 的 daterangepicker 合并到基于 Angular 7 的项目中?
- kylin - 如何知道 Cube 构建已经完成
- javascript - 如何从另一个对象 JavaScript 创建对象
- javascript - NodeJS:等待所有带有 Promises 的 foreach 完成,但从未真正完成