Я пытаюсь сначала сгруппировать, а затем отсортировать, используя вложенное свойство для воссоздания массива.До сих пор я могу группировать, но сортировка не работает для меня.
Ниже приведен пример данных, с которыми я работаю.
`
let arr = [
{
'id': 6,
'date': '2019-05-06',
'time': {
'id': 1,
'start': '08:00:00',
'end': '09:10:00'
}
},
{
'id': 7,
'date': '2019-05-06',
'time': {
'id': 2,
'start': '07:00:00',
'end': '08:30:00'
}
},
{
'id': 8,
'date': '2019-05-06',
'time': {
'id': 3,
'start': '02:00:00',
'end': '03:00:00'
}
},
{
'id': 9,
'date': '2019-05-06',
'time': {
'id': 5,
'start': '04:00:00',
'end': '05:10:00'
}
},
{
'id': 10,
'date': '2019-05-07',
'time': {
'id': 1,
'start': '08:00:00',
'end': '09:10:00'
}
},
{
'id': 11,
'date': '2019-05-07',
'time': {
'id': 2,
'start': '07:00:00',
'end': '08:30:00'
}
},
{
'id': 12,
'date': '2019-05-07',
'time': {
'id': 3,
'start': '02:00:00',
'end': '03:00:00'
}
},
{
'id': 13,
'date': '2019-05-07',
'time': {
'id': 5,
'start': '04:00:00',
'end': '05:10:00'
}
}
]
`
Я использую lodash для группировки и сортировки.Ниже приведен желаемый результат, который сгруппирован с использованием date
, а затем отсортирован с использованием значения start
.
Ожидаемый результат: `
let groupedAndSortedArr =
[
{
'id': 8,
'date': '2019-05-06',
'time': {
'id': 3,
'start': '02:00:00',
'end': '03:00:00'
}
},
{
'id': 9,
'date': '2019-05-06',
'time': {
'id': 5,
'start': '04:00:00',
'end': '05:10:00'
}
},
{
'id': 7,
'date': '2019-05-06',
'time': {
'id': 2,
'start': '07:00:00',
'end': '08:30:00'
}
},
{
'id': 6,
'date': '2019-05-06',
'time': {
'id': 1,
'start': '08:00:00',
'end': '09:10:00'
}
},
{
'id': 12,
'date': '2019-05-07',
'time': {
'id': 3,
'start': '02:00:00',
'end': '03:00:00'
}
},
{
'id': 13,
'date': '2019-05-07',
'time': {
'id': 5,
'start': '04:00:00',
'end': '05:10:00'
}
},
{
'id': 11,
'date': '2019-05-07',
'time': {
'id': 2,
'start': '07:00:00',
'end': '08:30:00'
}
},
{
'id': 10,
'date': '2019-05-07',
'time': {
'id': 1,
'start': '08:00:00',
'end': '09:10:00'
}
}
]
`
Я пытался использовать _.mapValues(_.groupBy(arr, 'date'), t => _.sortBy(t, 'start'))
, какие группы, но неправильно сортирует по start
времени.
Что может быть хорошим способом для достижения этого результата?
Спасибо!