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

如何在javascript中按日期名称对数组排序?,javascript,sorting,Javascript,Sorting,我想按日期名称对数组排序。 这是我的数组中的一个示例 let data = [ { day: "Saturday" isOpen: false description: "07:00 - 18:00 WIB" }, { day: "Sunday" isOpen: false description: "07:00 - 18:00 WIB" }, {

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

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中的排序函数,但仍然找不到如何按日期名称排序。 我该怎么做?
谢谢。

您可以创建一个数组来维护日期顺序。然后迭代此数组并使用从
data
数组中获取匹配的日期。数组过滤器将返回一个数组,因此使用获取内容并将其推送到排序的
数组

const dateOrder=['frienday'、'frienday'、'frienday']
让数据=[{
日期:“星期六”,
伊索彭:错,
描述:“07:00-18:00 WIB”
},
{
日:“星期日”,
伊索彭:错,
描述:“07:00-18:00 WIB”
},
{
日期:“星期五”,
伊索彭:错,
描述:“07:00-18:00 WIB”
}
];
设排序=[];
dateOrder.forEach((项目)=>{
sorted.push(…data.filter(elem=>elem.day==item));
});
console.log(已排序)
尝试以下操作:

data.sort((a, b) => a.day>b.day)
(MDN:)

//编辑 这是怎么回事

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

“日期名”是什么?这能回答你的问题吗?我知道这种方式比
.sort
好,但如果你能为读者分享一个参考链接,那就太好了great@Rajesh编辑:)次要建议:由于您控制对象,所以最好将密钥保留为全天的名称,而不是尼克。这将使您能够跳过day.slice(…)
@Rajesh这取决于您如何编写它^-^