簡體   English   中英

試圖了解如何使用_.reduce

[英]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 ,具體取決於要提供空數組時要實現的語義。

與其在回調中考慮變量xy ,不如將它們視為accumulatorcurrent 在第一遍中,將“初始值”參數作為accumulator傳遞,而在每個后續遍中,將前一遍的結果作為accumulator提供。

您錯誤提供的0將作為accumulator的第一個值傳遞,因此以后的每個乘法也將得出0

幸運的是, reduce規范指出,如果省略該初始值參數,則它將使提供的數組的第一個元素位於accumulator的初始值中,然后僅從第二個元素開始進行迭代。

如果不提供初始值,則數組中必須至少包含一個元素。

暫無
暫無

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

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