你的语法有点偏离......你需要用花括号打开一个关闭的散列:
{"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
编辑:
如果您想将两个数组合并成一个顺序键值对的散列,您可以执行以下操作:
years = ["1990", "1995", "2010", "1985"]
days = ['10', '20', '2', '50']
Hash[*years.zip(days).flatten]
#=> {"1990"=>"10", "1995"=>"20", "2010"=>"2", "1985"=>"50"}