Rubyリファレンス: Home

sort_by! (Array)

Edit   History

Ruby 1.9.2

標準クラス・モジュール > Array > sort_by!

array.sort_by! {|item| block }

sort_by!メソッドは、ブロックを使って要素をソートします。レシーバ自身を変更するメソッドです。ブロック引数itemに要素を入れながらブロックを繰り返し実行し、ブロックの戻り値を集めます。集めた戻り値を<=>演算子で比較して、小さい順に要素を並べます。

戻り値はレシーバ自身です。ブロックを省略したときはEnumeratorオブジェクトを返します。

次の例は、配列中の文字列を短い順にソートします。

animals = ["mouse", "cat", "hippopotamus", "giraffe"]
animals.sort_by! {|anim| anim.size }
p animals
["cat", "mouse", "giraffe", "hippopotamus"]

関連項目