2015-04-02 15 views
-6

У меня есть этот Hash:Руби Hash массива с Loop

{:id => [RN1223,BN3233], :name => ['Red Ring','Blue Bangles'], :category => ['Ring','Bangles']} 

И я хотел бы получить новый Hash в следующем формате:

{:id => 'RN1223', :name => 'Red Ring', :category => 'Ring'}, 
{:id => 'BN3233', :name => 'Blue Bangles', :category => 'Bangles'} 
+0

Что ваш вопрос? – sawa

+0

У меня есть этот хэш {: id => [RN1223, BN3233],: name => ['Red Ring', 'Blue Bangles'],: category => ['Ring', 'Bangles'}} Я хочу преобразовать форму в эту форму {: id => 'RN1223',: name => 'Red Ring',: category => 'Ring'}, {: id => 'BN3233',: name => 'Blue Bangles',: category => 'Bangles'} –

ответ

1
hsh = {:id => ['RN1223','BN3233'], 
     :name => ['Red Ring','Blue Bangles'], 
     :category => ['Ring','Bangles']} 
hsh.values.transpose.map {|arr| Hash[[:id, :name, :category].zip arr]} 
# => [{:id=>"RN1223", :name=>"Red Ring", :category=>"Ring"}, 
#  {:id=>"BN3233", :name=>"Blue Bangles", :category=>"Bangles"}] 
Смежные вопросы