ruby-on-rails - 在 Ruby 中将最大哈希键值插入数组?

标签 ruby-on-rails ruby hash maxby

我有一个名为 count 的哈希,定义为 count = {4=>2, 5=>3, 6=>3, 7=>1}

我想获取 max 值,然后将与该值对应的键推送到数组中,所以我这样做:

array = []
array.push(count.max_by{|k,v| v}[0])

=>> [5]

但是,6 还具有值 3,这是另一个最大值。如何将此值插入数组以便获得 [5,6] 而不仅仅是 [5]

最佳答案

这是选择哈希值的最大值的方法:

count.values.max
=> 3

在哈希上使用select方法:

count.select{ |k, v| v == count.values.max }
 => {5=>3, 6=>3}

获取 key :

count.select{ |k, v| v == count.values.max }.keys
 => [5, 6]

最后分配给一个数组:

array = count.select{ |k, v| v == count.values.max }.keys

关于ruby-on-rails - 在 Ruby 中将最大哈希键值插入数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19802891/

相关文章:

ruby - Ruby 中的虚拟属性

ruby-on-rails - Ruby on Rails config.secret_token 错误

javascript - ruby/rails 等同于 javascript decodeURIComponent?

ruby - Rubocop 配置更改

python - 是否有可用于 Python 的可变长度哈希函数?

arrays - perl 将数组元素放入散列中

mysql - Perl取消引用散列散列数组中的单个元素

ruby-on-rails - 渲染:new not going to the right place after a validation

ruby-on-rails - 初始化后的工厂女孩

ruby - 将唯一变量传递到 Ruby 线程