あなたの構文は少しずれています...中括弧で閉じたハッシュを開く必要があります:
{"1990" => '10', "1995" => '20', "2010" => '2', "1985" => '50'}
基本的に、その年に関連付けられた日数で年をキーイングしています。キーを設定するには、ハッシュ ロケット ( =>
) を使用してキーと値を示します。
次に、キーの降順 (あなたの場合は年) に並べ替えるには、次の方法で並べ替えを逆にします。
hash = {"1990" => '10', "1995" => '20', "2010" => '2', "1985" => '50'}
sorted = Hash[hash.sort.reverse]
#=> {"2010"=>"2", "1995"=>"20", "1990"=>"10", "1985"=>"50"}
最後に、年ごとの日数にアクセスできます。
sorted["1995"] #=> "20"
sorted["1985"] #=> "50"
または、各ペアに順番にアクセスします。
sorted.each do |k, v|
puts "Year: ".k." has ".v"\n"
puts "Now let's look at the previous year."
end
編集:
2 つの配列をマージして、連続するキーと値のペアのハッシュにする場合は、次のようにします。
years = ["1990", "1995", "2010", "1985"]
days = ['10', '20', '2', '50']
Hash[*years.zip(days).flatten]
#=> {"1990"=>"10", "1995"=>"20", "2010"=>"2", "1985"=>"50"}