Javascript 如何创建按日期排序的对象

Javascript 如何创建按日期排序的对象,javascript,Javascript,我正在试图解决一个问题,这个问题需要一个包含信息的对象数组。例如,将其转换为: [ { name: 'test1', date: '2019-02-18T08:33:01.000Z', }, { name: 'test2', date: '2019-02-19T08:33:01.000Z', }, { name: 'test3', date: '2019-02-19T08:33:01.000Z', }, ] 为此: { '2019-02-18':{ nam

我正在试图解决一个问题,这个问题需要一个包含信息的对象数组。例如,将其转换为:

[
{ 
  name: 'test1',
  date: '2019-02-18T08:33:01.000Z',
},
{ 
  name: 'test2',
  date: '2019-02-19T08:33:01.000Z',
},
{ 
  name: 'test3',
  date: '2019-02-19T08:33:01.000Z',
},
]
为此:

{
 '2019-02-18':{
   name: 'test1'
},
 '2019-02-19':[
 {
   name: 'test2',
 },
 {
   name: 'test3',
 }
]
}

我怎样才能做到这一点呢?

这与其说是一种分类,不如说是一组问题。对象关键点也是未排序的

函数groupByDate(数据){
让结果={};
data.forEach((el)=>{
设datePart=el.date.split(“T”)[0];
let value=结果[日期部分]
如果(值){
结果[datePart]。推送({name:el.name})
}否则{
结果[datePart]=[{name:el.name}]
}
});
返回结果;
}
变量日期=[
{ 
名称:“test1”,
日期:“2019-02-18T08:33:01.000Z”,
},
{ 
名称:“test2”,
日期:“2019-02-19T08:33:01.000Z”,
},
{ 
名称:“test3”,
日期:“2019-02-19T08:33:01.000Z”,
},
];

日志(groupByDate(dates))假设您希望为每个分组的
日期
创建一个对象数组。一种替代方法是结合使用

const输入=[
{名称:'test1',日期:'2019-02-18T08:33:01.000Z'},
{名称:'test2',日期:'2019-02-19T08:33:01.000Z'},
{名称:'test3',日期:'2019-02-19T08:33:01.000Z'}
];
让res=input.reduce((acc,{name,date})=>
{
设[m,d]=date.match(/(.+)T/);
acc[d]=[…(acc[d]| |[]),{name};
返回acc;
}, {});

控制台日志(res)可能的副本我们很乐意帮助您,但我们不太热衷于为您做工作。请与我们分享到目前为止您所拥有的,以便我们可以帮助您使其工作。谢谢。我不知道为什么这被否决了,它实现了与使用for循环的map reduce相同的结果。