javascript - 使用javascript按日期对具有工作日的对象数组进行排序
问题描述
谁能帮我按日期对这个对象数组进行排序。
[{ 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", …}]
解决方案
您可以获得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; }
推荐阅读
- module - OCaml "include Module" 只包含接口暴露的函数
- python - 如何处理 Flask 请求中损坏的 emojis 字符?
- asp.net-mvc - ASP.Net:混合身份验证 Azure AD / Forms
- javascript - 如何在 nodejs 中向我的函数添加异步/等待?
- flutter - 参数类型'流
- >' 不能分配给参数类型'Stream
- '。扑
- python - ElementClickInterceptedException:消息:元素单击被拦截 - 如何在 for 循环中定位并切换到 iframe
- python - 如何在创建gmail watch时传递参数以推送通知
- navbar - 如何设置 Bootstrap Navbar 活动类
- vtk - 在 paraview 中为 polydata 分配不同的颜色
- r - 有没有办法限制 IML 包 Shapley 值中的特征数量?