使用ArrayObject.reducer()的javascript中的groupby
我在这里找到了以下代码: 我想知道是否可以解释一下为什么我们需要reduce函数中的第二个{}?将结果放入的对象是否为空使用ArrayObject.reducer()的javascript中的groupby,javascript,reduce,Javascript,Reduce,我在这里找到了以下代码: 我想知道是否可以解释一下为什么我们需要reduce函数中的第二个{}?将结果放入的对象是否为空 var _groupBy = function(objectArray, property) { return objectArray.reduce(function (acc, obj) { var key = obj[property]; if (!acc[key]) { acc[key] = [];
var _groupBy = function(objectArray, property) {
return objectArray.reduce(function (acc, obj) {
var key = obj[property];
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(obj);
return acc;
}, {});
};
reduce的第二个论点是你的出发点。它将是函数中
acc
参数的值,在处理的第一次迭代中作为reduce的第一个参数传入 {}
是您发布的链接--arr.reduce(回调[,initialValue])
中提到的initialValue
。这是acc
的第一个值,然后acc
是返回的值。哦,我明白了-对于ObjectArray上的每个obj,一旦返回acc,它将被添加到{}??有意思。。使用reduce最具挑战性的部分是记住在第一个函数中返回一些东西。调试这些东西有时会很烦人