我正在寻找一种对数组中的哈希键进行排序的解决方案。
arr = [{"name"=>"Product Management", "id"=>647628}, {"name"=>"Sales", "id"=>647630}]
arr.each {|inner_hash| inner_hash.sort}
预期结果:
[{"id"=>647628, "name"=>"Product Management"}, {"id"=>647630, "name"=>"Sales"}]
答案 0 :(得分:3)
基本上不需要对散列进行排序,但是可以
arr.map { |h| h.sort.to_h }
# => [{"id"=>647628, "name"=>"Product Management"}, {"id"=>647630, "name"=>"Sales"}]
答案 1 :(得分:2)
您可以使用ruby Hash#sort_by
对Hash的元素进行排序:
arr.map { |inner_hash| inner_hash.sort_by(&:first).to_h }
>> [{"id"=>647628, "name"=>"Product Management"}, {"id"=>647630, "name"=>"Sales"}]