これを行うことについて話しているところはどこにも見つからないようです。
ハッシュ{"23"=>[0,3]}
があり、このハッシュをマージしてこのハッシュを作成したいとし{"23"=>[2,3]}
ます。{"23"=>[0,2,3]}
{"23"=>[3]}
または、とマージし{"23"=>0}
て取得するのはどうですか{"23"=>[0,3]}
ありがとう!
{ "23" => [0,3] }.merge({ "23" => [2,3] }) do |key, oldval, newval|
oldval | newval
end
#=> {"23"=>[0, 3, 2]}
非配列値を処理するためのより一般的な方法:
{ "23" => [0,3] }.merge({ "23" => [2,3] }) do |key, oldval, newval|
(newval.is_a?(Array) ? (oldval + newval) : (oldval << newval)).uniq
end
Marc-AndréLafortuneのヒントで更新されました。