Использование lodash для подготовки данных к графику "регистрация пользователей в последний день"
Я хочу использовать lodash для подготовки данных к графику "регистрация пользователей в последний день".
Вот мой массив пользователей:
{
name: toto,
creationDate: 11/11/2016 11:00:00
},
{
name: tata,
creationDate: 11/11/2016 10:00:00
},
{
name: titi,
creationDate: 09/11/2016 10:00:00
}
Мне нужно создать диаграмму с ChartJS, которая повторяет регистрацию пользователей за последний день (24 часа).
Если я использую groupBy:
var grouped = _.groupBy(users, function (user) {
return moment(user.creationDate).get('hour');
});
У меня не может быть "пустых" часов, когда нет регистрации пользователя, в конечном массиве.
Цель состоит в том, чтобы иметь это (скажем, это 18 часов):
labels = ['18', '17', '16', ... '18']
data = [['1', '1', '12, ... '3']]
Не могли бы вы помочь?
1 ответ
Решение
Вы можете создать объект по умолчанию с пустыми массивами и применить _.defaults
:
var hours = _.range(0,24);
var defaultHours = _.zipObject(hours, _.map(hours, function(){return [];}));
_.defaults(grouped, defaultHours);
После этого, grouped
будет содержать найденные вами значения или пустой массив в течение нескольких часов без регистрации.