如何underscore.js创建群组
How to underscore.js create a group
{
"Name": "User1",
"SlotStartDate": "05/16/2018",
"SlotStartTime": "9:20AM"
},
{
"Name": "User1",
"SlotStartDate": "05/16/2018",
"SlotStartTime": "10:20AM"
},
{
"Name": "User1",
"SlotStartDate": "05/17/2018",
"SlotStartTime": "9:20AM"
},
{
"Name": "User1",
"SlotStartDate": "05/17/2018",
"SlotStartTime": "10:20AM"
},
{
"Name": "User2",
"SlotStartDate": "05/16/2018",
"SlotStartTime": "8:45AM"
},
{
"Name": "User2",
"SlotStartDate": "05/16/2018",
"SlotStartTime": "9:25AM"
}
{
"Name": "User2",
"SlotStartDate": "05/17/2018",
"SlotStartTime": "8:45AM"
},
{
"Name": "User2",
"SlotStartDate": "05/17/2018",
"SlotStartTime": "9:25AM"
}
我如何使用 underscore.js 对数据和 return 数组按以下方式进行分组:
按用户和日期分组。
User1
- "05/16/2018"
- "9:20AM"
- "10:20AM"
- "05/17/2018"
- "9:20AM"
- "10:20AM"
User2
- "05/16/2018"
- "8:45AM"
- "9:25AM"
- "05/17/2018"
- "8:45AM"
- "9:25AM"
我尝试了以下代码的组合:
var createGroups = _.groupBy(response2, function(value){
return value.Name + '#' + value.SlotStartDate
});
var groupedData = _.map(createGroups,function(createGroup){
return {
slottimes: _.pluck(createGroup,'SlotStartTime')
}
});
感谢您的帮助!
你可以这样做:
var groupedData = _.mapObject(_.groupBy(data, 'Name'), (user) => {
return _.mapObject(_.groupBy(user, 'SlotStartDate'), (date) => {
return _.pluck(date, 'SlotStartTime');
});
});
{
"Name": "User1",
"SlotStartDate": "05/16/2018",
"SlotStartTime": "9:20AM"
},
{
"Name": "User1",
"SlotStartDate": "05/16/2018",
"SlotStartTime": "10:20AM"
},
{
"Name": "User1",
"SlotStartDate": "05/17/2018",
"SlotStartTime": "9:20AM"
},
{
"Name": "User1",
"SlotStartDate": "05/17/2018",
"SlotStartTime": "10:20AM"
},
{
"Name": "User2",
"SlotStartDate": "05/16/2018",
"SlotStartTime": "8:45AM"
},
{
"Name": "User2",
"SlotStartDate": "05/16/2018",
"SlotStartTime": "9:25AM"
}
{
"Name": "User2",
"SlotStartDate": "05/17/2018",
"SlotStartTime": "8:45AM"
},
{
"Name": "User2",
"SlotStartDate": "05/17/2018",
"SlotStartTime": "9:25AM"
}
我如何使用 underscore.js 对数据和 return 数组按以下方式进行分组:
按用户和日期分组。
User1
- "05/16/2018"
- "9:20AM"
- "10:20AM"
- "05/17/2018"
- "9:20AM"
- "10:20AM"
User2
- "05/16/2018"
- "8:45AM"
- "9:25AM"
- "05/17/2018"
- "8:45AM"
- "9:25AM"
我尝试了以下代码的组合:
var createGroups = _.groupBy(response2, function(value){
return value.Name + '#' + value.SlotStartDate
});
var groupedData = _.map(createGroups,function(createGroup){
return {
slottimes: _.pluck(createGroup,'SlotStartTime')
}
});
感谢您的帮助!
你可以这样做:
var groupedData = _.mapObject(_.groupBy(data, 'Name'), (user) => {
return _.mapObject(_.groupBy(user, 'SlotStartDate'), (date) => {
return _.pluck(date, 'SlotStartTime');
});
});