0
0

sort_byをHashに対して使う時の話

Posted at

どんなメソッドなの?

ブロックの評価結果を <=> メソッドで比較することで、self を昇順にソートします。ソートされた配列を新たに生成して返します。

なので、ArrayやHashで使って場合に、中身をソートして配列を返すってメソッドですね。

具体例

# サンプルハッシュ
hash = { 3 => "apple", 2 => "banana", 5 => "cherry", 1 => "date" }

# キーでソート
sorted_by_key = hash.sort_by { |key, value| key }
puts "Sorted by key (as array):"
p sorted_by_key

# 値でソート
sorted_by_value = hash.sort_by { |key, value| value }
puts "\nSorted by value (as array):"
p sorted_by_value

こんな感じで使用できます。

ただ、Hashで使った場合は、配列になってしまうのでHashのまま扱いたい人は、.to_hメソッドを使って

sorted_by_key_hash = hash.sort_by { |key, value| key }.to_h

としてあげれば、Hashのままソートできます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0