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

如何在javascript中按日期名称对数组进行排序?

如何在javascript中按日期名称对数组进行排序?

慕哥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)



查看完整回答
反对 回复 2023-05-25
?
皈依舞

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)])


查看完整回答
反对 回复 2023-05-25
  • 2 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

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