我的日历数据看起来像
[
{
date: 1488128400000,
details: [
{ time: '01.00 - 02.00', title: 'go sleep' }
]
},
{
date: 1488128400000,
details: [
{ time: '05.30 - 06.30', title: 'wakeup' }
]
},
{
date: 1488301200000,
details: [
{ time: '09.00 - 10.00', title: 'go to school' }
]
}
]
我想对相同的日期进行分组并合并每个详细信息数组,如下所示
[
{
date: 1488128400000,
details: [
{ time: '01.00 - 02.00', title: 'go sleep' },
{ time: '05.30 - 06.30', title: 'wakeup' }
]
},
{
date: 1488301200000,
details: [
{ time: '09.00 - 10.00', title: 'go to school' }
]
}
]
我可以用Lodash解决这个问题吗?
我刚学了Lodash,不知道这个案例,也不知道搜索这个案例的关键词。
谢谢
最佳答案
您不需要使用lodash
。以下实现了您想要做的事情。尽管您可能需要一些填充,具体取决于您所需的浏览器支持。
https://jsbin.com/sojarabiqi/edit?js,console
const events = [
{
date: 1488128400000,
details: [
{ time: '01.00 - 02.00', title: 'go sleep' }
]
},
{
date: 1488128400000,
details: [
{ time: '05.30 - 06.30', title: 'wakeup' }
]
},
{
date: 1488301200000,
details: [
{ time: '09.00 - 10.00', title: 'go to school' }
]
}
];
const grouped = events.reduce(function (grouped, event) {
// Attempt to find existing grouped date
const index = grouped.findIndex(function (date) {
return date.date === event.date;
});
// Append event details to existing date
if (index !== -1) {
grouped[index]['details'].push(event.details[0]);
}
// Append event details to new date
else {
grouped.push(event);
}
return grouped;
}, []);
console.log(grouped);
关于javascript - Lodash groupby 对象并组合数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43060726/