Ответ 1
h = h1.merge(h2){|key, first, second| first + " " + second }
Он будет работать, если ваши ключи одинаковы. В вашем коде они не являются ( "s1" vs "s1 =" ). Должны ли они быть теми же ключами?
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" }
Каков наилучший способ сделать это? спасибо!
h = h1.merge(h2){|key, first, second| first + " " + second }
Он будет работать, если ваши ключи одинаковы. В вашем коде они не являются ( "s1" vs "s1 =" ). Должны ли они быть теми же ключами?
Вы имеете в виду:
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"}
Хеши заметок неупорядочены, если вы хотите упорядоченный хэш, вам, вероятно, нужно будет в этом