Ruby,来自数组散列的最大值

Rob*_*ali 2 ruby

我有这个哈希

FORMATS = {
    'vertical_4'   => %w[vertical small small small small],
    'horizontal_4' => %w[horizontal small small small small],
    'horizontal_2' => %w[large small small],
    'mixed_3'      => %w[vertical horizontal small small],
    'huge'         => %w[horizontal small small horizontal small small small]
  }
Run Code Online (Sandbox Code Playgroud)

我需要最大值,所以我使用

MAX_ELEMENTS   = FORMATS.map {|_,v| v}.max.size
Run Code Online (Sandbox Code Playgroud)

为什么它返回5而不是7?

Urs*_*sus 6

具有最多元素的数组

FORMATS.values.max_by(&:count)
Run Code Online (Sandbox Code Playgroud)

  • 或者`FORMATS.max_by {| _,v | v.size}`如果你也对密钥感兴趣的话. (2认同)