underscorejs 是如何reduce
工作的?
很容易得到
_.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);
(结果是6
)。
但是其他可选参数是如何工作的呢?在文档中它说:
备忘录是归约的初始状态,它的每一步都应该由迭代器返回。迭代器被传递了四个参数:备忘录,然后是迭代的值和索引(或键),最后是对整个列表的引用。”
但我不明白。我试图reduce
用于以下问题,但我无法弄清楚:
var input = [{"score": 2, "name": "Jon", "venue": "A"}, {"score": 3, "name": "Jeff", "venue":"A"}, {"score": 4, "name": "Jon", "venue":"B"}, {"score": 4, "name": "Jeff", "venue":"B"}];
var output = [{"score": 6, "name":"Jon", "venue": ["A", "B"]}, {"score": 7, "name":"Jeff", "venue": ["A", "B"]}];
如何使用_reduce
输入获得输出?它在 reduce 内部的工作方式非常有帮助。