【发布时间】:2019-12-26 14:37:11
【问题描述】:
我正在尝试对时间进行排序。但我无法按时间 (hh:mm:ss) 格式排序。所以我用了时刻js。我的数组按时间排序没有得到排序。如何使用地图对数组进行排序
我有一个对象数组:
let elements =[
{
"id": 1,
"date": "02:01:02"
},
{
"id": 2,
"date": "01:01:01"
},
{
"id": 3,
"date": "03:01:01"
},
{
"id": 4,
"date": "04:01:01"
}
];
let parsedDates = new Map(
elements.map(e =>[["id", "date"],[e.id, moment(e.date, 'hh:mm:ss')]])
);
elements.sort((a, b) => parsedDates.get(a) - parsedDates.get(b));
console.log(elements.map(e => ({ id: e.id, date: e.date })));
【问题讨论】:
-
矩有什么作用?
-
你的代码的问题是
parsedDates.get(b)和parsedDates.get(a)返回undefined。由于无法对 Map 进行排序,请先对elements数组进行排序,然后从中创建一个 Map。 -
传递给新
Map的数组没有多大意义。你到底想在那里完成什么?
标签: javascript arrays sorting