首页 > 解决方案 > 如何根据对象数组中的时间排序?

问题描述

我有一个对象数组,例如

[{
  time: "13:20",
  key2: "",
  key3: ""
}, {
  time: "13:40",
  key2: "",
  key3: ""
}, {
  time: "04:20",
  key2: "",
  key3: ""
}]

我希望他们按时间排序。我对 momentjs 做了一些研究,但没有发现有用的东西。

我面临的主要问题是如何将我进入字符串格式的时间转换为某种可比较的排序格式。任何形式的帮助将不胜感激。谢谢。

标签: javascriptsortingobjectmomentjs

解决方案


你总是在同一个日期。然后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)


推荐阅读