/ / Ruby: kombinovať dvojdimenzionálne polia do jedného poľa hashov [zatvorené] - rubín, polia, hash

Ruby: kombinujú dvojrozmerné polia do jednej množiny hashov [uzavreté] - rubín, polia, hash

čo je najčistejší spôsob, ako zmeniť tieto dve polia polí:

[[1, "a"], [2, "b"]]

a

[[1, "c"], [2, "d"]]

do jedného poľa hashov s ľubovoľnými kľúčmi:

[{:id => 1, :foo => "a", :bar => "c"}, {:id => 2, :foo => "b", :bar => "d"}]

vypracovať pozíciu 0 každého vnútorného poľaby mal mapovať na: id kľúč, poloha 1 vnútorných polí prvého poľa by mala mapovať na: kláves foo a poloha 1 vnútorných polí druhého poľa by sa mala mapovať na: bar kľúča. ďalej, kľúč: id každého hašu by sa nemal opakovať a každý haš by mal mať: id,: foo a: bar kľúč.

odpovede:

1 pre odpoveď č. 1

Vyjasnite rozložením premenných bloku:

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