Javascript 下划线:在计算另一个字段的总计时按日期分组
我有一个具有以下结构的对象数组:Javascript 下划线:在计算另一个字段的总计时按日期分组,javascript,underscore.js,Javascript,Underscore.js,我有一个具有以下结构的对象数组: [{date: 08/17/15, total: 20}, {date: 08/17/15, total: 10}, {date: 08/15/15, total: 15}, {date: 08/14/15, total: 20}] 我想按天对对象进行分组,同时对当天每个对象的“总计”字段进行合计。对于上面的数组,我希望得到如下结果: [{date: 08/17/15, total: 30}, {date: 08/15/15, total: 15}, {dat
[{date: 08/17/15, total: 20}, {date: 08/17/15, total: 10}, {date: 08/15/15, total: 15}, {date: 08/14/15, total: 20}]
我想按天对对象进行分组,同时对当天每个对象的“总计”字段进行合计。对于上面的数组,我希望得到如下结果:
[{date: 08/17/15, total: 30}, {date: 08/15/15, total: 15}, {date: 08/14/15, total: 20}]
目前,我正在尝试使用下划线对日期进行分组,如下所示:
var groupedDates = _.groupBy(groupedValues, 'date', function(d) {
return {
date: d.date,
total: d.total
};
});
但是我很难把总数加起来。有什么帮助吗?您可以借助reduce和find方法以非常简洁的方式解决它:
var data=[{date:'08/17/15',total:20},{date:'08/17/15',total:10},{date:'08/15/15',total:15},{date:'08/14/15',total:20}];
var结果=\减少(数据,函数(上一个,当前){
var found=u.find(prev,函数(el){return el.date==curr.date;});
已找到?(find.total+=当前总数):上一推送(u.clone(curr));
返回上一个;
}, []);
警报(JSON.stringify(result,null,4))代码>
也可能是的副本,但会在Firefox中引发错误