慕哥6287543
2023-05-25 17:40:48
我想按日期名稱對我的數組進行排序。這是我的數組中的一個例子,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
提交
取消