Javascript 如何根据任意对象值对数组进行排序?

Javascript 如何根据任意对象值对数组进行排序?,javascript,jquery,arrays,sorting,time,Javascript,Jquery,Arrays,Sorting,Time,我有一些基于工作日的数据如下: [{ "dayOfWeek": "TUESDAY", "startTime": "19:30:00", "endTime": "21:15:00" }, { "dayOfWeek": "SATURDAY", "startTime": "19:15:00", "endTime": "21:00:00" }, { "dayOfWeek": "FRIDAY", "startTime": "19:00:00"

我有一些基于工作日的数据如下:

[{
    "dayOfWeek": "TUESDAY",
    "startTime": "19:30:00",
    "endTime": "21:15:00"
}, {
    "dayOfWeek": "SATURDAY",
    "startTime": "19:15:00",
    "endTime": "21:00:00"
}, {
    "dayOfWeek": "FRIDAY",
    "startTime": "19:00:00",
    "endTime": "20:15:00"
}, {
    "dayOfWeek": "THURSDAY",
    "startTime": "19:15:00",
    "endTime": "20:30:00"
}, {
    "dayOfWeek": "WEDNESDAY",
    "startTime": "19:30:00",
    "endTime": "20:45:00"
}, {
    "dayOfWeek": "SUNDAY",
    "startTime": "19:30:00",
    "endTime": "20:45:00"
}, {
    "dayOfWeek": "MONDAY",
    "startTime": "19:30:00",
    "endTime": "21:00:00"
}]

然而,这些数据来自一个不规则排序的API,这是不可信的。我需要使用这个数组,值从周一到周日递减。我该怎么做?我假设我必须设置某种类型的地图进行查找?

您可以使用一个对象,带有天数和排序值

var数组=[{dayOfWeek:“星期二”,startTime:“19:30:00”,endTime:“21:15:00”},{dayOfWeek:“星期六”,startTime:“19:15:00”,endTime:“21:00:00”},{dayOfWeek:“星期五”,startTime:“19:00:00”,endTime:“20:15:00”},{dayOfWeek:“星期三”,startTime:“19:30:00”,endTime:“20:45:00”},{dayOfWeek:“周日”,startTime:“19:30:00”,endTime:“20:45:00”},{dayOfWeek:“周一”,startTime:“19:30:00”,endTime:“21:00:00”};
array.sort(函数(a,b){
var sort={星期一:1,星期二:2,星期三:3,星期四:4,星期五:5,星期六:6,星期日:7};
返回排序[a.dayOfWeek]-排序[b.dayOfWeek];
});
console.log(数组)

.as console wrapper{max height:100%!important;top:0;}
右侧,创建一个对象,其键是日期名称,其值为0到6(或1到7或任何您想要的值),然后在
.sort()中使用该对象
comparator函数。有关@Pointy提到的示例,请参阅我标记的副本。实际上,此副本更适合您的需要: