ruby で配列の最大値・最小値を取得する
配列から最大値、最小値を取得する際は、max, min が使える。
array = [110,21,13,24,15] # 要素の最大値を取得 p array.max # => 110 p array.max(3) # => [110, 24, 21] # 要素の最小値を取得 p array.min # => 13 p array.min(3) # => [13, 15, 21] # 文字列の場合 array = ["110","21","13","24","15"] # 文字列はアルファベット順に評価されてしまう p array.max # => "24" p array.max(3) # => ["24", "21", "15"] p array.min # => "110" p array.min(3) # => ["110", "13", "15"] # 数値が文字列になっている場合は変換する p array.map(&:to_i).max p array.map(&:to_i).max(3) p array.map(&:to_i).min p array.map(&:to_i).min(3)
条件付きの最大値・最小値の取得は、max_by, min_by を使う。
array = ["banana", "orange", "melon", "strawberry", "grape"] p array.max_by { |x| x.length } # => "strawberry" p array.min_by { |x| x.length } # => "melon"