【JavaScript】一行代码实现 JS 日期的排序
可读性为 0 哈哈哈哈哈。
const sortDate = (parseDate => targetDateInfos => targetDateInfos.sort(({ date: preDate }, { date: nextDate }) => parseDate(preDate) - parseDate(nextDate)))((toTimestamp => date => Object.prototype.toString.call(date) === "[object Date]" ? toTimestamp(date) : toTimestamp(date.split(/[-\/]/)))(dateRef => Date.parse(!dateRef.length ? dateRef : new Date(...dateRef))));
测试
let infos = [
{ date: "2018-1-10" },
{ date: "2018-5-10" },
{ date: "2017-1-10" },
{ date: "2016-1-10" }
];
let objInfos = [
{ date: new Date("2018", 1, 10) },
{ date: new Date("2018", 5, 10) },
{ date: new Date("2017", 1, 10) },
{ date: new Date("2016", 1, 10) }
];
console.info(sortDate(infos));
console.info(sortDate(objInfos));
output
[
{ date: '2016-1-10' },
{ date: '2017-1-10' },
{ date: '2018-1-10' },
{ date: '2018-5-10' }
]
[
{ date: 2016-02-09T16:00:00.000Z },
{ date: 2017-02-09T16:00:00.000Z },
{ date: 2018-02-09T16:00:00.000Z },
{ date: 2018-06-09T16:00:00.000Z }
]