Tengo dos matrices:Combinar dos matrices en Hash
members = ["Matt Anderson", "Justin Biltonen", "Jordan Luff", "Jeremy London"]
instruments = ["guitar, vocals", "guitar", "bass", "drums"]
Lo que me gustaría hacer es combinar estos para que la estructura de datos resultante es un hash de este modo:
{"Matt Anderson"=>["guitar", "vocals"], "Justin Biltonen"=>"guitar", "Jordan Luff"=>"bass", "Jeremy London"=>"drums"}
Tenga en cuenta que el valor de "Matt Anderson" ahora es una matriz en lugar de una cadena. ¿A todos los magos de Ruby les importa hacer esto?
Sé Hash[*members.zip(instruments).flatten]
los combina casi como yo quiero, sino lo que trata de convertir las "guitarras, voces" cadena en una matriz en primer lugar? Gracias.
¿No hay una función de zip? –
el '*' y '.flatten' en el ejemplo de la pregunta no son necesarios. 'Hash [members.zip (instruments)]' da el mismo resultado que 'Hash [* members.zip (instruments) .flatten]' – nohat
Lo convertiría en '{..." Justin Biltonen "=> [" guitar "] ...}', ya que facilitará el trabajo más tarde, en cuyo caso map/zip/split/Hash dará una buena solución. –