我似乎无法找到谈论这样做的任何地方.
假设我有一个哈希{"23"=>[0,3]}
,我想在这个哈希中合并{"23"=>[2,3]}
这个哈希{"23"=>[0,2,3]}
或者如何{"23"=>[3]}
合并{"23"=>0}
得到{"23"=>[0,3]}
谢谢!
meg*_*gas 30
{ "23" => [0,3] }.merge({ "23" => [2,3] }) do |key, oldval, newval|
oldval | newval
end
#=> {"23"=>[0, 3, 2]}
Run Code Online (Sandbox Code Playgroud)
处理非数组值的更通用方法:
{ "23" => [0,3] }.merge({ "23" => [2,3] }) do |key, oldval, newval|
(newval.is_a?(Array) ? (oldval + newval) : (oldval << newval)).uniq
end
Run Code Online (Sandbox Code Playgroud)
更新了Marc-AndréLafortune的提示.