我想按日期名称对我的数组进行排序。这是我的数组中的一个例子,let data = [ { day: "Saturday" isOpen: false description: "07:00 - 18:00 WIB" }, { day: "Sunday" isOpen: false description: "07:00 - 18:00 WIB" }, { day: "Friday" isOpen: false description: "07:00 - 18:00 WIB" }]然后我希望我的阵列是这样的let data = [ { day: "Friday" isOpen: false description: "07:00 - 18:00 WIB" }, { day: "Saturday" isOpen: false description: "07:00 - 18:00 WIB" }, { day: "Sunday" isOpen: false description: "07:00 - 18:00 WIB" }]我已经阅读了 javascript 中的排序功能,但我仍然找不到如何按日期名称排序。我怎样才能做到这一点?谢谢。
2 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
您可以创建一个数组来维护日期的顺序。然后迭代此数组并使用过滤器从数组中获取匹配的日期data
。数组过滤器将返回一个数组,因此使用扩展语法获取内容并将其推送到sorted
数组。
const dateOrder = ['Friday', 'Saturday', 'Sunday']
let data = [{
day: "Saturday",
isOpen: false,
description: "07:00 - 18:00 WIB"
},
{
day: "Sunday",
isOpen: false,
description: "07:00 - 18:00 WIB"
},
{
day: "Friday",
isOpen: false,
description: "07:00 - 18:00 WIB"
}
];
let sorted = [];
dateOrder.forEach((item) => {
sorted.push(...data.filter(elem => elem.day === item));
});
console.log(sorted)
皈依舞
TA贡献1851条经验 获得超3个赞
尝试这个:
data.sort((a, b) => a.day>b.day)
这个怎么样?
let weekDays = { Mon: 0, Tue: 1, Wed: 2, Thu: 3, Fri: 4, Sat: 5, Sun: 6, } data.sort((a, b) => weekDays[a.day.slice(0, 3)] > weekDays[b.day.slice(0, 3)])
添加回答
举报
0/150
提交
取消