gpt4 book ai didi

javascript - 这个 Fibonacci 解决方案如何在 JavaScript 中工作?

转载 作者:行者123 更新时间:2023-11-30 15:19:36 26 4
gpt4 key购买 nike

非常感谢对下面给定解决方案的解释。 JavaScript 如何将 s 变量“存储”为数组,因为我认为它会不断被覆盖为 s.push(s[s.length - 1] + s[s.length - 2]); 行直到递归后才被命中?

根据我的理解,JavaScript 从左读到写,然后从上到下,所以它永远不会到达推送线,直到它经历了 s 的所有循环?

它如何存储一个数组?

function fibonacci(n) {
if (n === 1) {
return [0, 1];
} else {
var s = fibonacci(n - 1);
s.push(s[s.length - 1] + s[s.length - 2]);
return s;
}
}
console.log(fibonacci(8));

最佳答案

当您使用 n=8 启动脚本时,将创建变量 s:

var s = fibonacci(n - 1);

该函数将被递归调用,直到n 等于1。在此步骤中,函数返回包含两个元素的数组:

 return [0, 1];

这个数组返回给s。在接下来的步骤中,数组长度将通过 push() 方法增加:

s.push(s[s.length - 1] + s[s.length - 2]);

于是,函数逐步退出递归。

关于javascript - 这个 Fibonacci 解决方案如何在 JavaScript 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43937372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com