Rubyリファレンス: Home

sort_by (Enumerable)

Edit   History

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

enum.sort_by {|item| block }

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

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

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

次の例は、ハッシュを値の順でソートします。

scores = { 'Carol' => 90, 'Alice' => 50, 'Bob' => 60, 'David' => 40 }
p scores.sort_by {|k, v| v }
[["David", 40], ["Alice", 50], ["Bob", 60], ["Carol", 90]]

関連項目