Я пытаюсь сгруппировать большой объем данных, полученных из базы данных, в отдельные объекты на основе пользователя.
Данные, которые я получаю, выглядят так:
[ { ID: 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35',
value: 13.450980186462402,
created: 2018-05-02T13:21:19.960Z },
{ ID: '5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9',
value: 13.450980186462402,
created: 2018-05-02T13:21:24.179Z },
{ ID: '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b',
value: 13.450980186462402,
created: 2018-05-02T13:21:18.249Z },
{ ID: '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b',
value: 13.450980186462402,
created: 2018-05-02T13:21:11.230Z },
{ ID: '5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9',
value: 0,
created: 2018-05-02T11:33:34.705Z },
{ ID: '5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9',
value: 13.450980186462402,
created: 2018-05-02T13:21:00.049Z },
{ ID: 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35',
value: 13.450980186462402,
created: 2018-05-02T13:21:04.269Z },
{ ID: 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35',
value: 13.450980186462402,
created: 2018-05-02T13:21:02.365Z }
]
но я бы хотел, чтобы выходные данные функции были сгруппированы по тому же идентификатору, как этот
[[{ ID: 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35',
value: 13.450980186462402,
created: 2018-05-02T13:21:19.960Z },
{ ID: 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35',
value: 13.450980186462402,
created: 2018-05-02T13:21:04.269Z },
{ ID: 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35',
value: 13.450980186462402,
created: 2018-05-02T13:21:02.365Z }
],
[
{ ID: '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b',
value: 13.450980186462402,
created: 2018-05-02T13:21:18.249Z },
{ ID: '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b',
value: 13.450980186462402,
created: 2018-05-02T13:21:11.230Z }
],
[
{ ID: '5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9',
value: 13.450980186462402,
created: 2018-05-02T13:21:24.179Z },
{ ID: '5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9',
value: 0,
created: 2018-05-02T11:33:34.705Z },
{ ID: '5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9',
value: 13.450980186462402,
created: 2018-05-02T13:21:00.049Z }
]]
Какой самый эффективный способ сделать это в JavaScript?
Я нашел функцию, которая выглядит так
function groupUserMood(xs, key) {
return xs.reduce(function(rv, x) {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
};
Но это также добавляет похожие вещи, которые я бы не хотел.