Ruby:将两个哈希合并为一个,并连接值

Ruby:将两个哈希合并为一个,并连接值,ruby,hash,merge,Ruby,Hash,Merge,2散列: 我想将两个散列合并为一个,如下所示: h1 = { "s1" => "2009-7-27", "s2" => "2010-3-6", "s3" => "2009-7-27" } h2 = { "s1" => "12:29:15", "s2" => "10:00:17", "s3" => "12:25:52" } 最好的方法是什么?谢谢 你的意思是: h = { "s1" => "2009-7-27 12:29:15",

2散列:

我想将两个散列合并为一个,如下所示:

h1 = { "s1" => "2009-7-27", "s2" => "2010-3-6", "s3" => "2009-7-27" }

h2 = { "s1" => "12:29:15", "s2" => "10:00:17", "s3" => "12:25:52" }    
最好的方法是什么?谢谢

你的意思是:

h = { "s1" => "2009-7-27 12:29:15",
      "s2" => "2010-3-6 10:00:17", 
      "s3" => "2009-7-27 2:25:52" }
注意:散列是无序的,如果您想要一个有序的散列,您可能需要查看


如果你的钥匙是一样的,它就会工作。在代码中,它们不是(“s1”vs“s1=”)。它们应该是同一把钥匙吗?

山姆,你的“查看此”链接已失效。谢谢你回答丘巴斯的问题。但是,如果
h1
h2
没有相同的键,则逻辑中断。有办法解决这个问题吗?
Hash[h1.map{|k,v| [k, "#{v} #{h2[k]}"]}]

 => {"s3"=>"2009-7-27 12:25:52", "s1"=>"2009-7-27 12:29:15", "s2"=>"2010-3-6 10:00:17"}
h = h1.merge(h2){|key, first, second| first + " " + second }