Sev*_*rin 1 ruby arrays sorting hash
我有以下数组:
names = [
{"Adriana"=>{:gender=>"female", :nationality=>"danish"}},
{"Adriane"=>{:gender=>"female", :nationality=>"danish"}},
{"Agatha"=>{:gender=>"female", :nationality=>"danish"}},
{"Adrianna"=>{:gender=>"female", :nationality=>"danish"}}
]
Run Code Online (Sandbox Code Playgroud)
我如何按每个哈希的名称对这个哈希数组进行排序?
我试过了names.sort!,哪个扔了ArgumentError: comparison of Hash with Hash failed.
只需按照以下Enumerable#sort_by方法使用.
names = [
{"Adriana"=>{:gender=>"female", :nationality=>"danish"}},
{"Adriane"=>{:gender=>"female", :nationality=>"danish"}},
{"Agatha"=>{:gender=>"female", :nationality=>"danish"}},
{"Adrianna"=>{:gender=>"female", :nationality=>"danish"}}
]
names.sort_by { |h| h.first.first }
# => [{"Adriana"=>{:gender=>"female", :nationality=>"danish"}},
# {"Adriane"=>{:gender=>"female", :nationality=>"danish"}},
# {"Adrianna"=>{:gender=>"female", :nationality=>"danish"}},
# {"Agatha"=>{:gender=>"female", :nationality=>"danish"}}]
Run Code Online (Sandbox Code Playgroud)