生成一个包含斐波那契数序列的数组,直到 num
项。
创建一个特定长度的空数组,初始化前两个值(0
和 1
)。使用 Array.reduce()
将值添加到数组中,该值是最后两个值的和,前两个值除外。使用数学公式来计算所需数组的长度。
const fibonacciUntilNum = num => { let n = Math.ceil(Math.log(num * Math.sqrt(5) + 1 / 2) / Math.log((Math.sqrt(5) + 1) / 2)); return Array.from({ length: n }).reduce( (acc, val, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i), [] ); };
fibonacciUntilNum(10); // [ 0, 1, 1, 2, 3, 5, 8 ]
更多代码 JavaScript 实用代码片段 请查看 https://www.html.cn/30-seconds-of-code/
最新评论
写的挺好的
有没有兴趣翻译 impatient js? https://exploringjs.com/impatient-js/index.html
Flexbox playground is so great!
感谢总结。
awesome!
这个好像很早就看到类似的文章了
比其他的教程好太多了
柯理化讲的好模糊…没懂