6

JavaScript Underscore ライブラリをさらに詳しく調査し始めたばかりで、( and と_.reduce()も呼ばれる) が正しいと思うことを明確にしたいだけです。私の質問は次のとおりです。injectfoldl

_.reduce([1, 2, 3, 4, 5], function(memo, num) { return memo + num; }, 5);呼び出されると、次のことが起こります。

  • memoから始まる5
  • memo+ list[0]= memo=6
  • memo+ list[1]= memo=8
  • memo+ list[2]= memo=11
  • memo+ list[3]= memo=15
  • memo+ list[4]= memo=20

そして、それが ran 関数が を返す理由20です。そうですか?したがって_.reduceRight()、逆でmemo+から始まりlist[ /* last element in array */ ]ますか?

ありがとう。

よろしく。

4

1 に答える 1

10

それは正解です。コールバックの最初の引数はreduce、最後の反復から返された値(または最初の反復の場合はシード) を表します。

コールバックの 2 番目の引数は、配列の現在の繰り返しの値です。

そのため、最初の引数は、到達しようとしている結果のアキュムレータです。_.reduceすべての反復が完了すると、関数から最終的な値が返されます。

于 2013-02-20T16:13:29.500 に答える