Я получил массив объектов, содержащих fromTime & endTime.Я хотел бы отсортировать их, чтобы получить 16: 00-18: 00 первым в массиве и 16: 00-21: 00 последним.Я знаю, как фильтровать на основе endDate, но мне нужно принять во внимание fromDate, кто-нибудь может мне помочь в правильном направлении?
"deliverySlots": [
{
"deliveryFromTime": "17:00",
"deliveryToTime": "19:00",
},
{
"deliveryFromTime": "18:00",
"deliveryToTime": "20:00",
},
{
"deliveryFromTime": "19:00",
"deliveryToTime": "21:00",
},
{
"deliveryFromTime": "16:00",
"deliveryToTime": "21:00",
},
{
"deliveryFromTime": "16:00",
"deliveryToTime": "18:00",
}
]
function compare(a,b) {
var time1 = parseFloat(a.deliveryToTime.replace(':','.').replace(/[^\d.-]/g, ''));
var time2 = parseFloat(b.deliveryToTime.replace(':','.').replace(/[^\d.-]/g, ''));
if (time1 < time2) return -1;
if (time1 > time2) return 1;
return 0;
}
deliverySlots.sort(compare);
Цель:
"deliverySlots": [
{
"deliveryFromTime": "16:00",
"deliveryToTime": "18:00",
},
{
"deliveryFromTime": "17:00",
"deliveryToTime": "19:00",
},
{
"deliveryFromTime": "18:00",
"deliveryToTime": "20:00",
},
{
"deliveryFromTime": "19:00",
"deliveryToTime": "21:00",
},
{
"deliveryFromTime": "16:00",
"deliveryToTime": "21:00",
},
]
Так что в принципеЯ хочу расставить приоритеты сортировки по endDate и затем startDate.16:00 - 21:00 должно прийти ПОСЛЕ 19: 00-21: 00