読者です 読者をやめる 読者になる 読者になる

Ruby Recipe139 最小値・最大値を求める

配列の中の最大値や最小値、または最小値と最大値を求める関数。

ary = [-1, 3, 101, -235]

# 最小値を求める
p ary.min         #=> -235

# 最大値を求める
p ary.max         #=> 101

# 最大と最小を求める
p ary.minmax      #=> [-235, 101]


要素同士の大小関係の判定には <=> 演算子が使われているので、
ブロックでそれを書けば同じようにできます。

ary = [-1, 3, 101, -235]

# 最小値を求める
p ary.min{ |a, b| a.to_i <=> b.to_i }       #=> -235

# 最大値を求める
p ary.max{ |a, b| a.to_i <=> b.to_i }       #=> 101

# 最大と最小を求める
p ary.minmax{ |a, b| a.to_i <=> b.to_i }    #=> [-235, 101]

また min_by メソッドや max_by メソッドなんかもあります。
詳しくはリファレンスを。
http://doc.ruby-lang.org/ja/1.9.3/class/Enumerable.html

Rubyレシピブック 第3版 303の技

Rubyレシピブック 第3版 303の技