який найчистіший спосіб перетворити ці два масиви масивів:
[[1, "a"], [2, "b"]]
і
[[1, "c"], [2, "d"]]
в один масив хешів з довільними ключами, подібними до цього:
[{:id => 1, :foo => "a", :bar => "c"}, {:id => 2, :foo => "b", :bar => "d"}]
розробити, положення 0 кожного внутрішнього масивуповинна відображатися в ключі: id, позиція 1 внутрішніх масивів першого масиву повинна відображатися на клавіші: foo, а позиція 1 внутрішніх масивів другого масиву повинна відображатися на клавіші: bar. Крім того, ключ ідентифікатора кожного хешу не повинен повторюватися, і кожен хеш повинен мати: id,: foo і: bar key.
Відповіді:
1 для відповіді № 1Уточнити, розбивши змінні блоку:
a = [[1, "a"], [2, "b"]]
b = [[1, "c"], [2, "d"]]
a.zip(b).map { |(id,foo),(_,bar)| {id: id, foo: foo, bar: bar } }
#=> [{:id=>1, :foo=>"a", :bar=>"c"}, {:id=>2, :foo=>"b", :bar=>"d"}]