Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Enumerableモジュール > min_by

instance method Enumerable#min_by

min_by -> Enumerator[permalink][rdoc]
min_by(n) -> Enumerator
min_by {|item| ... } -> object | nil
min_by(n) {|item| ... } -> Array

各要素を順番にブロックに渡して評価し、 その評価結果を <=> で比較して、 最小であった値に対応する元の要素、もしくは最小の n 要素を返します。

引数を指定しない形式では要素が存在しなければ nil を返します。 引数を指定する形式では、空の配列を返します。

該当する要素が複数存在する場合、どの要素を返すかは不定です。

ブロックを省略した場合は Enumerator を返します。

Enumerable#minEnumerable#min_by の 違いは Enumerable#sortEnumerable#sort_by の違いと同じです。

[PARAM] n:
取得する要素数。

例:

a = %w(albatross dog horse)
a.min_by                    # => #<Enumerator: ["albatross", "dog", "horse"]:min_by>
a.min_by { |x| x.length }   # => "dog"
a.min_by(2)                 # => #<Enumerator: ["albatross", "dog", "horse"]:min_by(2)>
a.min_by(2) {|x| x.length } # => ["dog", "horse"]

[SEE_ALSO] Enumerable#sort_by