仅使用箭头函数实现斐波那契数列的更简洁写法咨询
仅箭头函数的简洁斐波那契实现
递归单行实现(逻辑最直观)
如果要生成前n项的数列,直接用下面的写法,代码最短逻辑最好懂,输入输出和你当前的代码完全兼容,直接替换即可:
const fibonacci = n => Array.from({ length: n }, (_, i) => i < 2 ? i : fibonacci(i - 1) + fibonacci(i - 2))
迭代实现(性能更优)
递归写法存在大量重复计算,当n超过30后性能会明显下降,下面的迭代写法没有重复计算问题,同样是纯箭头函数实现:
const fibonacci = n => Array.from({ length: n }, ((a = 0, b = 1) => () => ([prev, a, b] = [a, b, a + b], prev))())
内容的提问来源于stack exchange,提问作者user16659888
相关产品推荐
相关产品推荐

