【问题标题】:Sort Array of Hashes Keys对哈希键数组进行排序
【发布时间】:2019-05-06 10:08:42
【问题描述】:

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

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

【问题讨论】:

    标签: ruby ruby-hash


    【解决方案1】:

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

    arr.map { |h| h.sort.to_h }
    
    # => [{"id"=>647628, "name"=>"Product Management"}, {"id"=>647630, "name"=>"Sales"}]
    

    【讨论】:

      【解决方案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"}]
      

      【讨论】:

        猜你喜欢
        • 2019-04-25
        • 2012-01-21
        • 2011-04-26
        • 1970-01-01
        • 1970-01-01
        • 2014-05-30
        • 2020-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多