č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ď č. 1Vyjasnite 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"}]