Я пытаюсь отсортировать следующий массив объектов в порядке des c.
const data = [
{
scheduledTime: '22:00',
arrivalTime: '22:12',
},
{
scheduledTime: '20:10',
arrivalTime: undefined,
},
{
scheduledTime: '08:55',
arrivalTime: '23:12',
},
{
scheduledTime: '08:55',
arrivalTime: undefined,
},
{
scheduledTime: '09:55',
arrivalTime: undefined,
},
];
Правила таковы: сначала сортировка по прибытию, а затем по запланированному времени. Все неопределенные значения параметра «ivalTime »должны находиться в конце массива. Как только все неопределенные значения из «Arrival» находятся в конце массива, он должен быть снова отсортирован по «запланированному времени» в des c.
Вот что у меня есть в настоящее время:
const multiSort = data.sort(function(a, b) {
if (a.arrivalTime === undefined) return 1;
if (b.arrivalTime === undefined) return -1;
if (a.arrivalTime === b.arrivalTime) return 0;
if (a.arrivalTime > b.arrivalTime) return -1;
if (a.arrivalTime < b.arrivalTime) return 1;
return a.scheduledTime < b.scheduledTime ? 1 : -1;
});
Что такое вывод:
0: {scheduledTime: "08:55", arrivalTime: "23:12"}
1: {scheduledTime: "22:00", arrivalTime: "22:12"}
2: {scheduledTime: "20:10", arrivalTime: undefined} //scheduledTime not in desc
3: {scheduledTime: "08:55", arrivalTime: undefined} //scheduledTime not in desc
4: {scheduledTime: "09:55", arrivalTime: undefined} //scheduledTime not in desc
Желание вывода:
0: {scheduledTime: "08:55", arrivalTime: "23:12"}
1: {scheduledTime: "22:00", arrivalTime: "22:12"}
2: {scheduledTime: "20:10", arrivalTime: undefined} //scheduledTime in desc
3: {scheduledTime: "09:55", arrivalTime: undefined} //scheduledTime in desc
4: {scheduledTime: "08:55", arrivalTime: undefined} //scheduledTime in desc
Заранее спасибо :)