我如何正确地排序这些降序?我尝试过arr.sort() arr.sort().reverse(),查看了所有堆栈溢出.我想不出办法来做这个。每件事都试图对它们进行分类,但却做错了。
[
'1/19/2024', '1/20/2023',
'10/21/2022', '11/18/2022',
'12/16/2022', '3/17/2023',
'6/10/2022', '6/16/2023',
'6/17/2022', '6/21/2024',
'6/24/2022', '6/3/2022',
'6/31/2022', '7/15/2022',
'7/8/2022', '8/19/2022',
'9/15/2023', '9/16/2022'
]然后我需要把它们变成真正的月份。简,二月等,而不是数值.
发布于 2022-05-30 16:10:37
因此,最简单的方法是将字符串转换为日期,对其进行排序,然后将日期转换回字符串格式,请参见:
const origArr = [
'1/19/2024', '1/20/2023',
'10/21/2022', '11/18/2022',
'12/16/2022', '3/17/2023',
'6/10/2022', '6/16/2023',
'6/17/2022', '6/21/2024',
'6/24/2022', '6/3/2022',
'6/31/2022', '7/15/2022',
'7/8/2022', '8/19/2022',
'9/15/2023', '9/16/2022'
];
// create array of dates
const datesArr = origArr.map(str => new Date(str));
// sort array of dates
const datesSortedArr = datesArr.sort((a,b) => b - a);
// convert dates to strings
const sortedArr = datesSortedArr.map(item => {
const month = item.getMonth() + 1;
const day = item.getDate();
const year = item.getFullYear();
return `${month}/${day}/${year}`;
});
console.log('sortedArr:', sortedArr);
发布于 2022-05-30 16:18:18
您可以将它们转换为Date命令,而不是将它们转换回原始格式。
const dates = [
'1/19/2024', '1/20/2023',
'10/21/2022', '11/18/2022',
'12/16/2022', '3/17/2023',
'6/10/2022', '6/16/2023',
'6/17/2022', '6/21/2024',
'6/24/2022', '6/3/2022',
'6/31/2022', '7/15/2022',
'7/8/2022', '8/19/2022',
'9/15/2023', '9/16/2022'
]
const toDate = string => {
const [month, day, year] = string.split('/')
return new Date([year, month.padStart(2, '0'), day.padStart(2, '0')].join('-'))
}
const toString = date => [date.getMonth() + 1, date.getDate(), date.getFullYear()].join('/')
const reorder = data => {
const dates = data.map(toDate)
dates.sort((a, b) => b - a)
return dates.map(toString)
}
console.log(reorder(dates))
https://stackoverflow.com/questions/72437064
复制相似问题