Ruby:Hash 排序

people = {
  :fred => 23,
  :joan => 18,
  :pete => 54
}

 年龄排序:

people.values.sort    # => [18, 23, 54]

姓名排序:

people.sort_by { |name, age| age }
  # => [[:joan, 18], [:fred, 23], [:pete, 54]]

 或者

people.sort

 

一个复杂点的hash

people = {
  :fred => { :name => "Fred", :age => 23 },
  :joan => { :name => "Joan", :age => 18 },
  :pete => { :name => "Pete", :age => 54 }
}

 

people.sort_by { |k, v| v[:age] }
  # => [[:joan, {:name=>"Joan", :age=>18}], 
        [:fred, {:name=>"Fred", :age=>23}],
        [:pete, {:name=>"Pete", :age=>54}]]

 

posted on 2013-04-05 13:31  小浪鼓  阅读(1467)  评论(0编辑  收藏  举报

导航