Javascript 按顺序分组-JS
假设我有一个如下所示的对象数组,我想按Javascript 按顺序分组-JS,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,假设我有一个如下所示的对象数组,我想按kick\u off日期和顺序按kick\u off时间对它们进行分组 [ { id: 32, kick_off: 2020-07-07T17:45:00.000Z, home_team: 'Cardiff', away_team: 'Blackburn', }, { id: 33, kick_off: 2020-07-08T17:45:00.000Z, home_team: 'Fulham', away
kick\u off
日期和顺序按kick\u off
时间对它们进行分组
[ { id: 32,
kick_off: 2020-07-07T17:45:00.000Z,
home_team: 'Cardiff',
away_team: 'Blackburn', },
{ id: 33,
kick_off: 2020-07-08T17:45:00.000Z,
home_team: 'Fulham',
away_team: 'Forest',
},
{ id: 34,
kick_off: 2020-07-07T17:00:00.000Z,
home_team: 'Bohemians 1905',
away_team: 'Mlada Boleslav',
}
]
到目前为止我有
const groupBy = array.reduce(function(r, a) {
r[a.kick_off] = r[a.kick_off] || [];
r[a.kick_off].push(a);
return r;
}, Object.create(null));
这是回报
{ 'Tue Jul 07 2020 18:45:00 GMT+0100 (BST)':
[ { id: 32,
kick_off: 2020-07-07T17:45:00.000Z,
home_team: 'Cardiff',
away_team: 'Blackburn',
}
],
'Wed Jul 08 2020 18:45:00 GMT+0100 (BST)':
[ { id: 33,
kick_off: 2020-07-08T17:45:00.000Z,
home_team: 'Fulham',
away_team: 'Forest',
}
],
'Tue Jul 07 2020 18:00:00 GMT+0100 (BST)':
[ { id: 34,
kick_off: 2020-07-07T17:00:00.000Z,
home_team: 'Bohemians 1905',
away_team: 'Mlada Boleslav',
}
]
}
我知道为什么it团队会这样,因为同一天的比赛开球时间不同(我尝试过让每个开球时间相同,并且它正确分组)
我将如何按天分组并按时间排序我拥有的对象
任何指向资源的链接或解释都将非常有用,可以从中学习,您可以提前排序,只使用当天的部分进行分组
const
数组=[{id:32,开球:2020-07-07T17:45:00.000Z',主队:加的夫,客场:布莱克本,{id:33,开球:2020-07-08T17:45:00.000Z',主队:富勒姆,客场:森林,{id:34,开球:2020-07-07T17:00:00.000Z',主队:波希米亚人1905',客场:姆拉达·博莱斯拉夫],
groupBy=数组
.sort((a,b)=>a.kick\u off.localeCompare(b.kick\u off))
.减少(功能(r,a){
let day=a.kick_off.切片(0,10);
r[天]=r[天]| |[];
r[天]。推(a);
返回r;
},Object.create(null));
console.log(groupBy)代码>
作为控制台包装{max height:100%!important;top:0;}
谢谢,我不得不将排序更改为a.kick_off-b.kick_off,因为它们是时间戳而不是字符串(尽管当我转换为字符串时,排序仍然处于关闭状态),无论如何,这不是重点,非常感谢您的回答并帮助我您需要一个符合要求的字符串来按字符串排序。否则,取epoch和它的delta。