查找散列数组中最常用的名称的方法

时间:2015-07-15 05:23:51

标签: ruby-on-rails arrays hash

我有一系列像这样的哈希......

array = {"id"=>"123", "account"=>"456", "name"=>"CITY"},
        {"id"=>"456", "account"=>"567", "name"=>"CITY DIR DEP"},
        {"id"=>"456", "account"=>"567", "name"=>"BUCK"},
        {"id"=>"456", "account"=>"567", "name"=>"CITY DIR DEP"},
        {"id"=>"456", "account"=>"567", "name"=>"HAPPY"},
        {"id"=>"456", "account"=>"567", "name"=>"CIRCLE"}

我需要一种方法来比较每个项目的“名称”,并打印出重复次数最多的名称。

现在我有

array.group_by(&:itself).max_by(&:size).first

但我需要它来比较每个哈希中的名称来完成方法

1 个答案:

答案 0 :(得分:2)

array.group_by {|h| h['name'] }.max_by {|k, v| v.length }.first
# => "CITY DIR DEP"