Eri*_*Ven 33 javascript underscore.js
我正在尝试使用对象对以下数组进行分组:
[ { user_id: 301, alert_id: 199, deal_id: 32243 },
{ user_id: 301, alert_id: 200, deal_id: 32243 },
{ user_id: 301, alert_id: 200, deal_id: 107293 },
{ user_id: 301, alert_id: 200, deal_id: 277470 } ]
Run Code Online (Sandbox Code Playgroud)
如您所见,它包含user_id和alert_id组合,我喜欢将其分组.所以我想拥有以下数组:
[ { user_id: 301, alert_id: 199, deals: [32243] },
{ user_id: 301, alert_id: 200, deals: [32243,107293,277470]}]
Run Code Online (Sandbox Code Playgroud)
有谁知道解决这个问题?使用下划线的GroupBy,我可以根据一个键对值进行分组.但是我需要根据组合user_id AND alert_id对它们进行分组,如您所见.
我看了一下underscore.nest,但问题是它创建了自己的密钥.
Gru*_*nny 86
将groupBy与使用user_id和alert_id创建复合键的函数一起使用.然后映射分组以获得您想要的内容:
var list = [ { user_id: 301, alert_id: 199, deal_id: 32243 },
{ user_id: 301, alert_id: 200, deal_id: 32243 },
{ user_id: 301, alert_id: 200, deal_id: 107293 },
{ user_id: 301, alert_id: 200, deal_id: 277470 } ];
var groups = _.groupBy(list, function(value){
return value.user_id + '#' + value.alert_id;
});
var data = _.map(groups, function(group){
return {
user_id: group[0].user_id,
alert_id: group[0].alert_id,
deals: _.pluck(group, 'deal_id')
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29449 次 |
| 最近记录: |