Javascript 从分组的日期时间创建对象
我得到了一个datetimes数组-我需要一个对象,其中日期被分组为键,值应该是该日期的时间数组。资料来源:Javascript 从分组的日期时间创建对象,javascript,jquery,Javascript,Jquery,我得到了一个datetimes数组-我需要一个对象,其中日期被分组为键,值应该是该日期的时间数组。资料来源: [ "2019-02-18T11:30:00+01:00", "2019-02-18T13:00:00+01:00", "2019-02-19T13:30:00+01:00", "2019-02-19T16:30:00+01:00", "2019-02-20T17:00:00+01:00", "2019-02-20T17:30:00+01:
[
"2019-02-18T11:30:00+01:00",
"2019-02-18T13:00:00+01:00",
"2019-02-19T13:30:00+01:00",
"2019-02-19T16:30:00+01:00",
"2019-02-20T17:00:00+01:00",
"2019-02-20T17:30:00+01:00",
"2019-02-20T18:00:00+01:00"
]
我需要这个:
{
'2019-02-18': [
'11:30:00+01:00',
'13:00:00+01:00'
],
'2019-02-19': [
'13:30:00+01:00',
'16:30:00+01:00'
],
...
}
一种解决方案是循环数组,去掉前10个字符并匹配其他日期时间-这不是很好的tbh。您可以使用
let data=[“2019-02-18T11:30:00+01:00”,“2019-02-18T13:00:00+01:00”,“2019-02-19T13:30:00+01:00”,“2019-02-19T16:30:00+01:00”,“2019-02-20T17:30:00+01:00”,“2019-02-20T18:00:00+01:00”]
让op=data.reduce((op,inp)=>{
let[key,value]=inp.split('T')
如果(操作[键]){
op[键]。推送(值)
}否则{
op[键]=[值]
}
返回操作
},{})
console.log(op)
一种替代方法是与
const输入=[
“2019-02-18T11:30:00+01:00”,
“2019-02-18T13:00:00+01:00”,
“2019-02-19T13:30:00+01:00”,
“2019-02-19T16:30:00+01:00”,
“2019-02-20T17:00:00+01:00”,
“2019-02-20T17:30:00+01:00”,
“2019-02-20T18:00:00+01:00”
];
让res=输入。减少((acc,日期)=>
{
设[m,d,t]=date.match(/(.++)t(.+)/);
acc[d]=[…(acc[d]| |[]),t];
返回acc;
}, {});
控制台日志(res)代码>您是否尝试过“一种解决方案”?可能重复