/ / Ruby: комбінуйте двовимірні масиви в один масив хешів [закритий] - ruby, масиви, хеш

Ruby: об'єднати двовимірні масиви в єдину масиву хешей [closed] - ruby, arrays, hash

який найчистіший спосіб перетворити ці два масиви масивів:

[[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"}]