我有这些哈希值:
{"a" => 1, "b" => 2, "c" => 3, "k" => 14}
{"b" => 51, "c" => 2, "d" => 8}
我需要编写代码,以便在操作之后,结果将是:
{"a" => 1, "b" => 51, "c" => 2, "k" => 14}
我试过了:
h1.each do |h, j|
h2.each do |hh, jj|
if h == hh
j = jj
end
end
end
但这不起作用。我也认为这是丑陋的代码,那么如何写得更好/正确呢?
我虽然应该比较两个哈希值,但是,如果第二个键与第一个键相同,则将第一个哈希值更改为第二个哈希值。
只需遍历其中的条目h2
并更新相应的条目(h1
如果已存在):
h2.each { |k,v| h1[k]=v if h1.include?(k) }
h1 # => {"a"=>1, "b"=>51, "c"=>2, "k"=>14 }
另外,如果您想如上所述更新条目并添加新条目,则h2
可以使用以下Hash#merge!
方法:
h1.merge!(h2)
h1 # => {"a"=>1, "b"=>51, "c"=>2, "k"=>14, "d"=>8}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句