[英]Underscore _.reduce clarification?
我剛開始更深入地探索JavaScript Underscore庫,只是想澄清我認為_.reduce()
(也稱為inject
和foldl
)的做法是對的。 我的問題是:下面是對的嗎?
當_.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
這就是run函數返回20
。 那正確嗎? 因此_.reduceRight()
是相反的,從memo
+ list[ /* last element in array */ ]
?
謝謝。
問候。
對,那是正確的。 reduce
回調的第一個參數表示從上一次迭代(或第一次迭代中的種子)返回的值。
回調的第二個參數是Array當前迭代的值。
因此,第一個參數是您嘗試達到的任何結果的累加器。 所有迭代完成后,從_.reduce
函數返回最終值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.