簡體   English   中英

下划線_.reduce澄清?

[英]Underscore _.reduce clarification?

我剛開始更深入地探索JavaScript Underscore庫,只是想澄清我認為_.reduce() (也稱為injectfoldl )的做法是對的。 我的問題是:下面是對的嗎?

_.reduce([1, 2, 3, 4, 5], function(memo, num) { return memo + num; }, 5); 被調用,發生以下情況:

  • memo5開始
  • 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

這就是run函數返回20 那正確嗎? 因此_.reduceRight()是相反的,從memo + list[ /* last element in array */ ]

謝謝。

問候。

對,那是正確的。 reduce回調的第一個參數表示從上一次迭代(或第一次迭代中的種子)返回的值。

回調的第二個參數是Array當前迭代的值。

因此,第一個參數是您嘗試達到的任何結果的累加器。 所有迭代完成后,從_.reduce函數返回最終值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM