Ruby 2.2.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