为了账号安全,请及时绑定邮箱和手机立即绑定

使用javascript按日期对具有工作日的对象数组进行排序

使用javascript按日期对具有工作日的对象数组进行排序

MMMHUHU 2022-10-27 16:04:54
谁能帮我按日期对这个对象数组进行排序。[{ date: "Dienstag, 07.07.20", time: "09:15", id: "18685672", … }, { date: "Dienstag, 07.07.20", time: "13:10", id: "18685668", … }, { date: "Freitag, 10.07.20", time: "12:05", id: "18685736", … }, { date: "Montag, 06.07.20", time: "10:10", id: "18685684", … }, { date: "Montag, 06.07.20", time: "14:05", id: "18685652", … }, { date: "Donnerstag, 09.07.20", time: "14:10", id: "18685718", …}]
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

您可以获得ISO 8601字符串并按字符串排序。

const getISO = o => {

    const [d, m, y] = o.date.match(/.{8}$/)[0].split('.');

    return `20${y}-${m}-${d} ${o.time}`;

};


var data = [{ date: "Dienstag, 07.07.20", time: "09:15", id: "18685672" }, { date: "Dienstag, 07.07.20", time: "13:10", id: "18685668" }, { date: "Freitag, 10.07.20", time: "12:05", id: "18685736" }, { date: "Montag, 06.07.20", time: "10:10", id: "18685684" }, { date: "Montag, 06.07.20", time: "14:05", id: "18685652" }, { date: "Donnerstag, 09.07.20", time: "14:10", id: "18685718" }];


data.sort((a, b) => getISO(a).localeCompare(getISO(b)));


console.log(data);

.as-console-wrapper { max-height: 100% !important; top: 0; }



查看完整回答
反对 回复 2022-10-27
?
慕沐林林

TA贡献2016条经验 获得超9个赞

说数组在arr. 然后:


arr.sort((a,b)=>{

  aa=a.date.split(" ")[1].split(".").reverse().join(".")+a.time;

  bb=b.date.split(" ")[1].split(".").reverse().join(".")+b.time;

  return aa<bb?-1:aa==bb?0:1;

})

我假设你的日期是正常的,就像世界上任何地方一样:dayOfMonth.Month.Year,不像美国的愚蠢,月份在 dayOfMonth 之前,例如:“7 月 4 日在 7 月 4 日庆祝”...... :)


查看完整回答
反对 回复 2022-10-27
  • 2 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信