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

我想按日期名称对我的数组进行排序。这是我的数组中的一个例子,


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 中的排序功能,但我仍然找不到如何按日期名称排序。我怎样才能做到这一点?谢谢。


慕哥6287543
浏览 85回答 2
2回答

交互式爱情

您可以创建一个数组来维护日期的顺序。然后迭代此数组并使用过滤器从数组中获取匹配的日期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)

皈依舞

尝试这个: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)])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript