0

我正在寻找一种解决方案来对数组中的哈希键进行排序。

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"}]
4

2 回答 2

2

您可以使用 rubyHash#sort_by​​ 对 Hash 的元素进行排序:

arr.map { |inner_hash| inner_hash.sort_by(&:first).to_h }
>> [{"id"=>647628, "name"=>"Product Management"}, {"id"=>647630, "name"=>"Sales"}]
于 2019-05-06T10:12:38.123 回答
2

基本上你不需要对哈希进行排序,但你可以

arr.map { |h| h.sort.to_h }

# => [{"id"=>647628, "name"=>"Product Management"}, {"id"=>647630, "name"=>"Sales"}]
于 2019-05-06T10:17:56.440 回答