javascript - 如何根据对象数组中的时间排序?
问题描述
我有一个对象数组,例如
[{
time: "13:20",
key2: "",
key3: ""
}, {
time: "13:40",
key2: "",
key3: ""
}, {
time: "04:20",
key2: "",
key3: ""
}]
我希望他们按时间排序。我对 momentjs 做了一些研究,但没有发现有用的东西。
我面临的主要问题是如何将我进入字符串格式的时间转换为某种可比较的排序格式。任何形式的帮助将不胜感激。谢谢。
解决方案
你总是在同一个日期。然后getTime()
比较一下
let arr = [{
time: "13:20",
key2: "",
key3: ""
}, {
time: "13:40",
key2: "",
key3: ""
}, {
time: "04:20",
key2: "",
key3: ""
}]
const toTime = (t) => new Date(`December 17, 1995 ${t}`).getTime();
arr.sort((a,b) => toTime(a.time) - toTime(b.time))
console.log(arr)
推荐阅读
- docker - docker-compose中的DNS,映射到非80端口?
- ios - 在标签栏Swift上推送/呈现视图控制器
- apache-spark - 两个数据框的连接正在工作,但现在当我更改其中一个数据框的内容时它失败了
- python-2.7 - PyInstaller: IOError: [Errno 2] No such file or directory: with ciscoconfparse library
- javascript - 散景滑块堆积条形图
- asp.net - ASP.net 超链接波浪号 ~ URL 未按预期呈现
- r - 按日期字符串过滤文件列表
- json - 如何将响应 json 与 TypeScript 接口 Angular6 对齐
- php - PHP - 通过 RFC 1738 对自定义 URL 进行编码
- java - vaadin $v-background-color 可以以编程方式更改吗?