我正在创建一个对象数组,它看起来像
let obj = {
date: String,
time: String,
text: String,
}
日期格式是“MM-DD-YYYY”,时间格式是“HH:MM:SS”,我从API中获取此格式,无法更改格式,我需要按照日期和时间的升序对数组进行排序,即对于相同的日期,时间的升序。我试过使用JS Date和Moment,但没有成功。使用Date(a.date) - Date(b.date)
只按日期排序是可行的,但如果我尝试将时间也包括在内,它就不行了,甚至连(Date(a.date) - Date(b.date)) || (a.time.localeCompare(b.time))
都不行
如何在JavaScript(NodeJS)中实现这一点?
4条答案
按热度按时间qyzbxkaa1#
您可以将日期和时间字符串转换为JavaScript Date对象,然后使用sort()方法:
wqsoz72f2#
我可以通过下面的sort函数来解决这个问题:
向ChatGPT致敬!
vshtjzan3#
使用下面的排序逻辑,您可以将日期和时间放在一起,这样就不需要在每次将每个项与另一项进行比较时重新解析每个项。
b4lqfgs44#
对于每个对象,从
["date"]
和[time]
字符串创建一个格式正确的日期-时间字符串。然后使用
Date()
构造函数将新字符串转换为Date
对象,然后将.parse()
转换为时间戳编号。详细信息在示例中注解