[英]Trying to understand how to use _.reduce
我正在嘗試解決此問題:使用_.reduce將數組中的所有值相乘。
這是我想出的:
var product = _.reduce([1, 2, 3], function(x, y){ return x * y; }, 0);
= 9
這近嗎? 我不覺得我正在完全掌握reduce()。 請幫忙。
您應該在對_.reduce
的調用中省略最后的0
參數,或者將其替換為1
,具體取決於要提供空數組時要實現的語義。
與其在回調中考慮變量x
和y
,不如將它們視為accumulator
和current
。 在第一遍中,將“初始值”參數作為accumulator
傳遞,而在每個后續遍中,將前一遍的結果作為accumulator
提供。
您錯誤提供的0
將作為accumulator
的第一個值傳遞,因此以后的每個乘法也將得出0
。
幸運的是, reduce
規范指出,如果省略該初始值參數,則它將使提供的數組的第一個元素位於accumulator
的初始值中,然后僅從第二個元素開始進行迭代。
如果不提供初始值,則數組中必須至少包含一個元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.