2014-02-02 3 views

ответ

4

Использование Array#map:

a = [[3, 18], [5, 20], [7, 22]] 
a.map { |item| {quantity: item[0], price: item[1]} } 
# => [{:quantity=>3, :price=>18}, 
#  {:quantity=>5, :price=>20}, 
#  {:quantity=>7, :price=>22}] 

a.map { |q, p| {quantity: q, price: p} } 
# => [{:quantity=>3, :price=>18}, 
#  {:quantity=>5, :price=>20}, 
#  {:quantity=>7, :price=>22}] 

a.map { |item| Hash[[:quantity, :price].zip(item)] } 
# => [{:quantity=>3, :price=>18}, 
#  {:quantity=>5, :price=>20}, 
#  {:quantity=>7, :price=>22}] 
2

Do, как показано ниже, используя Array#map

a = [[3, 18], [5, 20], [7, 22]] 
a.map { |v1,v2| {:quantity => v1, :price => v2} } 
0

Рискуя бить мертвую лошадь, моя версия, с имо лучше назвать

a.map {|(quantity, price)| {quantity: quantity, price: price} } 
Смежные вопросы