javascript - 为什么我的斐波那契生成器在运行时返回未定义
问题描述
我正在创建一个斐波那契生成器,它将在调用函数时返回一个数组作为输出。例如,如果我调用函数“fibonacciGenerator(3)”,则输出应该是 [0, 1, 1] 的数组。运行代码时,我一直不确定。为什么我总是不确定?解决这个问题的最佳方法是什么?
function fibonacciGenerator(n) {
//starting fibonacci array from 0 and 1
var fib = [0,1];
for (var i = 0; i < fib.length; i++) {
if(fib[i] === 2){
//add the two preceding numbers to get sum. Fn = Fn-1 + Fn-2
var Fn = fib[i -1] + fib[i -2];
console.log(Fn);
}
}
//Return an array of fibonacci numbers.
return Fn;
}
fibonacciGenerator (3);
解决方案
您使用了错误的逻辑。将添加内容推送到数组中,不要为此创建新变量,删除条件错误的 if 语句并从 2 开始 for loo
function fibonacciGenerator(n) {
//starting fibonacci array from 0 and 1
var fib = [0, 1];
for (var i = 2; i < n; i++)
//add the two preceding numbers to get sum. Fn = Fn-1 + Fn-2
fib.push(fib[i - 1] + fib[i - 2]);
}
//Return an array of fibonacci numbers.
return fib;
}
console.log(fibonacciGenerator(7));
推荐阅读
- azure-logic-apps - 如何将数组从 ADF 的 Web Activity 发送到 Logic App Webhook?
- python - 试图在熊猫中使用变换,但它给了我一些错误
- database - 用于 url 和相关关键字的 DynamoDB 数据模型
- css - 位置绝对 div 在离开其父容器并进入另一个容器后隐藏
- python - 在 Python 中绘制多类别数据
- javascript - 显示每行项目 3 的列表并在点击时选择项目 - Vue.js
- png - 使用官员和 PNG 修复图形错误?
- amazon-elastic-beanstalk - 在 AWS Linux2 上安装 Letsencrypt 的正确方法是什么?
- stream - cuda 与 cupy 和 tensorRT 的流同步问题
- python - 从多个 numpy 数组创建 xarray - 时间序列