Используйте map
и split
для преобразования строк инструмента в массивы:
instruments.map {|i| i.include?(',') ? (i.split /, /) : i}
Затем используйте Hash[]
и zip
для объединения members
с instruments
:
Hash[members.zip(instruments.map {|i| i.include?(',') ? (i.split /, /) : i})]
для получения
{"Jeremy London"=>"drums",
"Matt Anderson"=>["guitar", "vocals"],
"Jordan Luff"=>"bass",
"Justin Biltonen"=>"guitar"}
Если вам все равно, списки из одного элемента также являются массивами, вы можете использовать это более простое решение:
Hash[members.zip(instruments.map {|i| i.split /, /})]
, котороедает вам это:
{"Jeremy London"=>["drums"],
"Matt Anderson"=>["guitar", "vocals"],
"Jordan Luff"=>["bass"],
"Justin Biltonen"=>["guitar"]}