こんにちは!
今回はRubyでオブジェクトの配列を要素で並び替える方法(sort_by)についてまとめます。
やりたいこと
- オブジェクトの配列を要素によって並び替えたい
sort_by
メソッド
sort_by
はブロックを受け取り、ブロック内で各オブジェクトの比較する要素を指定する
使用例
class Fruit attr_accessor :name, :price def initialize(name, price) @name = name @price = price end end fruits = [ Fruit.new("Apple", 400), Fruit.new("Banana", 200), Fruit.new("Cherry", 300), ] # priceの昇順で並び替える sorted_fruites = fruits.sort_by { | fruit | fruit.price } # priceの降順で並び替える sorted_fruites_descending = fruits.sort_by { | fruit | -fruit.price }
ポイント
- 指定する要素は数値や文字列などが可能
- 降順にするには、ブロック内で要素に
-
を付ける
おわりに
今回はRubyでオブジェクトの配列を要素で並び替える方法(sort_by)についてまとめました。rubyだけを使っていた時はこのメソッドは使った覚えがありませんが、railsを触っていると必要になりました。
71/100