raf*_*raf 6 javascript underscore.js
我刚开始更深入地探索JavaScript Underscore库,只是想澄清我认为_.reduce()(也称为inject和foldl)的做法是对的.我的问题是:下面是对的吗?
当_.reduce([1, 2, 3, 4, 5], function(memo, num) { return memo + num; }, 5);被调用时,会发生以下情况:
memo 开始于 5memo+ list[0]= memo=6memo+ list[1]= memo=8memo+ list[2]= memo=11memo+ list[3]= memo=15memo+ list[4]= memo=20这就是run函数返回的原因20.是对的吗?因此_.reduceRight()是相反的,从memo+ 开始list[ /* last element in array */ ]?
谢谢.
问候.
the*_*tem 11
对,那是正确的.reduce回调的第一个参数表示从上一次迭代返回的值(或第一次迭代时的种子).
回调的第二个参数是Array当前迭代的值.
因此,第一个参数是您尝试达到的任何结果的累加器._.reduce所有迭代完成后,从函数返回最终值.