Я хотел бы сгруппировать ниже JSON на основе «title» и «alertID», а затем отсортировать его в порядке возрастания или убывания.
let events = [{
"_id": "5cbdb030284dfeb0bb441bfe",
"alert": {
"title": "New Pt w/ discharge in last 30 days",
"alertTime": "2018-12-15T05:48:31.000Z",
"alertID": "99994444"
}
}, {
"_id": "5cbdafbc284dfeb0bb441bd7",
"alert": {
"title": "Insurance: Non-Contracted Plan",
"alertTime": "2018-09-01T03:13:00.000Z",
"alertID": "12345699"
}
}, {
"_id": "5cbdafbe284dfeb0bb441be6",
"alert": {
"title": "Insurance: Non-Contracted Plan",
"alertTime": "2018-09-01T03:13:00.000Z",
"alertID": "12345688"
}
}, {
"_id": "5cbdb08d284dfeb0bb441c13",
"alert": {
"title": "New Pt w/ ED visit in last 7 days",
"alertTime": "2018-12-15T05:48:31.000Z",
"alertID": "12345699"
}
}, {
"_id": "5cbdb068284dfeb0bb441c09",
"alert": {
"title": "New Pt w/ ED visit in last 7 days",
"alertTime": "2018-12-15T05:48:31.000Z",
"alertID": "12345688"
}
}, {
"_id": "5cbdb477284dfeb0bb441c73",
"alert": {
"title": "PT Consult Order",
"alertTime": "2018-07-17T05:42:15.000Z",
"alertID": "12345699"
}
}, {
"_id": "5cbdafb8284dfeb0bb441bc7",
"alert": {
"title": "Bed Request Order for Medicare Patient",
"alertTime": "2019-04-22T12:12:39.340Z",
"alertID": "99994444"
}
}]
Вот как я пытаюсь достичь (в порядке убывания), но не сортируюсь.
_(events)
.orderBy(events, (e) => { return e.alert.alertTime},['desc'])
.uniqBy(function(event) { return [event.alert.title, event.alert.alertID].join();})
.groupBy((event) => event.alert.alertID)
Я специально хотел использовать lodash для достижения этого требования. Может кто-нибудь указать, что мне не хватает?
Это желаемый результат, который я ожидаю. Так что, если «alertID: 99994444» появляется первым, то я бы хотел сгруппировать все данные, имеющие одинаковый «alertID», и отсортировать их в порядке возрастания или убывания, как показано ниже. Аналогичным образом это должно быть сделано для всех оставшихся «alertID». :
[{
"_id": "5cbdb477284dfeb0bb441c73",
"alert": {
"title": "PT Consult Order",
"alertTime": "2018-07-17T05:42:15.000Z",
"alertID": "12345699"
}
}, {
"_id": "5cbdafbc284dfeb0bb441bd7",
"alert": {
"title": "Insurance: Non-Contracted Plan",
"alertTime": "2018-09-01T03:13:00.000Z",
"alertID": "12345699"
}
}, {
"_id": "5cbdb08d284dfeb0bb441c13",
"alert": {
"title": "New Pt w/ ED visit in last 7 days",
"alertTime": "2018-12-15T05:48:31.000Z",
"alertID": "12345699"
}
}, {
"_id": "5cbdafbe284dfeb0bb441be6",
"alert": {
"title": "Insurance: Non-Contracted Plan",
"alertTime": "2018-09-01T03:13:00.000Z",
"alertID": "12345688"
}
}, {
"_id": "5cbdb068284dfeb0bb441c09",
"alert": {
"title": "New Pt w/ ED visit in last 7 days",
"alertTime": "2018-12-15T05:48:31.000Z",
"alertID": "12345688"
}
}, {
"_id": "5cbdb030284dfeb0bb441bfe",
"alert": {
"title": "New Pt w/ discharge in last 30 days",
"alertTime": "2018-12-15T05:48:31.000Z",
"alertID": "99994444"
}
}, {
"_id": "5cbdafb8284dfeb0bb441bc7",
"alert": {
"title": "Bed Request Order for Medicare Patient",
"alertTime": "2019-04-22T12:12:39.340Z",
"alertID": "99994444"
}
}]