斐波那契数列要求当前数是前两个数之和的一种排序这一题比较有意思,需要使用生成器函数来完成,生成器函数具有以下特性:基于迭代器协议运作生成器函数不会马上执行,而是等待迭代指令函数内部的执行流程将根据yield关键字往下走,无视函数内部原有的执行流程/**
* const gen = fibGenerator();
* gen.next().value; // 0
* gen.next().value; // 1
*/题目要求这个数列的前几个数字是 0, 1, 1, 2, 3, 5, 8, 13最后一个数≤50题解var fibGenerator = function* () {
let [a, b] = [0, 1];
yield a; //第一次先返回1
while (true) {
[a, b] = [b, a + b]; //每次调用都让B的值进行求和,A的值取上一次求和后的B值
if (a <= 50) yield a; //要求2
}
};
let p1 = fibGenerator();
console.log(p1.nex
Harexs