以下の「期待される結果」セクションに示すように、2つのハッシュをマージして提供したいと思います。何か案は ?
データ例:
list1 = { '1' => [item1] }
list2 = { '1' => [item2], '2' => [item3]}
期待される結果
{
'1' => {:from_list1 => [item1], :from_list2 => [item2]},
'2' => {:from_list2 => [item3]}
}
以下の「期待される結果」セクションに示すように、2つのハッシュをマージして提供したいと思います。何か案は ?
データ例:
list1 = { '1' => [item1] }
list2 = { '1' => [item2], '2' => [item3]}
期待される結果
{
'1' => {:from_list1 => [item1], :from_list2 => [item2]},
'2' => {:from_list2 => [item3]}
}
ネストされた注入を試してください:
list1={'1'=>['item1'],'3'=>['item4']}
list2={"1"=>["item2"], "2"=>["item3"]}
list2.inject(list1.inject({}) { |c, (k, v)|
c[k]=(list2.has_key?(k) ? {:from_list1=>v,:from_list2=>list2[k]} : {:from_list1=>v})
c
}) { |c, (k, v)|
c[k]||={:from_list2=>v}
c
}
#result:
{"1"=>{:from_list1=>["item1"], :from_list2=>["item2"]}, "3"=>{:from_list1=>["item4"]}, "2"=>{:from_list2=>["item3"]}}