У меня возникают проблемы с созданием хэша из 2 массивов, когда значения одинаковы в одном из массивов. , например.Создание хэша из двух массивов с одинаковыми значениями в Ruby
names = ["test1", "test2"]
numbers = ["1", "2"]
Hash[names.zip(numbers)]
работает отлично это дает мне именно то, что мне нужно => {"test1"=>"1", "test2"=>"2"}
Однако, если значения в «именах» идентичны, то он не работает правильно
names = ["test1", "test1"]
numbers = ["1", "2"]
Hash[names.zip(numbers)]
показывает {"test1"=>"2"}
однако я ожидаю результат будет {"test1"=>"1", "test1"=>"2"}
Любая помощь с благодарностью
Спасибо. Я чувствую смущение отсутствием этой части. Все, что я хотел сделать, это перебрать массив. В конце концов сделал что-то вроде этого. 'names.zip (числа) .each_with_index do | (имя, номер), i |' – sylvian
'keys.zip (значения) .each_with_object ({}) {| (k, v), h | h.update ({k => [v]}) {| _, ov, _ | ov << v}} '- это еще один способ сделать то же самое. –