在javascript中使用map或reduce打印斐波那契数列

Dav*_*ham 0 javascript arrays higher-order-functions

我想在 Javascript 中使用 map() 或 reduce() 函数打印斐波那契数列。我在网上找不到任何关于它的东西。我不太确定我在 map() 中的情况。

我基本上在写

fib(n){
return new Array(n-1).fill(1).map((_,i) => *This is where I am confused* ) ;
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*yer 5

使用 来做到这一点相对容易reduce(),只需检查索引并采取相应措施:

function fib(n){
  return new Array(n).fill(1).reduce((arr, _ ,i) => {
      arr.push((i <= 1) ? i : arr[i-2] + arr[i-1])
      return arr
  },[]) ;
}
console.log(fib(10))
Run Code Online (Sandbox Code Playgroud)

map() 不是特别合适,因为您没有一种自然的方式来访问较早的状态。