ruby hash 排序
ruby hash 排序
h = {"sa"=>1, "ab"=>2, "x3"=>3, "de"=>, :de=>5} h.sort_by{|k,v|k.to_s} #=> [["ab", 2], [:de, 5], ["de", 6], ["sa", 1], ["x3", 3]] h.sort_by{|k,v|v.to_s} #=>[["sa", 1], ["ab", 2], ["x3", 3], [:de, 5], ["de", 6]] h.sort_by{|k|k[0].to_s} #=>[["ab", 2], [:de, 5], ["de", 6], ["sa", 1], ["x3", 3]] h.sort_by{|k|k[1].to_s} #=>[["sa", 1], ["ab", 2], ["x3", 3], [:de, 5], ["de", 6]] h = {"sa"=>1, "ab"=>2, "x3"=>3, "de"=>6, :de=>5} h.sort #=>argumentError: comparison of Array with Array failed,因为:de=>5与"de"=>6 Key类型不一样,键类型一样,才可以直接用sort,按键排序,否则要把键处理为一致的数据(可以比较的数据类型)