ABLOGI

Webエンジニアになるため、Rubyを独学中。

【Ruby】配列のソート入門

配列のソート超入門

要素が数値の場合

ary = [5, 3, 19, 1, 9]
p ary.sort
=> [1, 3, 5, 9, 19]

要素が文字列の場合

数値と同じようにやってみると…

array = ["5", "3", "19", "1", "9"]
p ary.sort
=> ["1", "19", "3", "5", "9"]

となってうまくいかない。

こんな時は以下の二通りのやり方がある。

① sortメソッドにブロックを渡す。

array = ["5", "3", "19", "1", "9"]
p array.sort{|a, b| a.to_i <=> b.to_i }
=> ["1", "3", "5", "9", "19"]

②要素を数値に変換する。

array = ["5", "3", "19", "1", "9"]
array.map!{|n| n.to_i }
p array.sort
=> [1, 3, 5, 9, 19]