Ruby - конвертировать массив в хеш - PullRequest
0 голосов
/ 23 мая 2018

Я зацикливаюсь на этом массиве (экземпляры времени):

[2018-05-23 8:00:00, 2018-05-23 8:30:00, 2018-05-23 9:30:00, 2018-05-24 15:00:00, 2018-05-24 15:30:00]

И я хотел бы преобразовать его в хеш-код, например:

{"2018-05-23"=>["2018-05-23 8:00:00", "2018-05-23 8:30:00"], "2018-05-24"=>[]}

Спасибо!

1 Ответ

0 голосов
/ 23 мая 2018

Использование Enumerable#group_by:

input = ['2018-05-23 8:00:00', '2018-05-23 8:30:00',
         '2018-05-23 9:30:00', '2018-05-24 15:00:00', '2018-05-24 15:30:00']
input.group_by { |e| DateTime.parse(e).to_date.to_s }
#⇒ {"2018-05-23"=>["2018-05-23 8:00:00", "2018-05-23 8:30:00", "2018-05-23 9:30:00"],
#   "2018-05-24"=>["2018-05-24 15:00:00", "2018-05-24 15:30:00"]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...