配列の中に入ったハッシュのソートについて書いておきます。
こんな感じで、配列の中にハッシュがあったとします。
array = [
{
:nickname => "Aさん",
:image => "default_user_image.jpeg",
:sum_size => 211.0,
:max_size => 64.0
},
{
:nickname => "Bさん",
:image => "/uploads/user/image/10/C2513F3.jpeg",
:sum_size => 215.0,
:max_size => 50.0
},
{
:nickname => "Cさん",
:image => "/uploads/user/image/6/FB6D582.jpeg",
:sum_size => 65.0,
:max_size => 65.0
}
]
:max_size
の値が大きい順にソートしたい時。
sort_maxsize = array.sort_by! { |x| x[:max_size] }
sort_maxsize.reverse!
実行結果
{
:nickname => "Cさん",
:image => "/uploads/user/image/6/FB6D582.jpeg",
:sum_size => 65.0,
:max_size => 65.0
},
{
:nickname => "Aさん",
:image => "default_user_image.jpeg",
:sum_size => 211.0,
:max_size => 64.0
},
{
:nickname => "Bさん",
:image => "/uploads/user/image/10/C2513F3.jpeg",
:sum_size => 215.0,
:max_size => 50.0
}
]
:max_size
に対してうまくソートできました!
追記
コメントで教えて頂きましたので、追記させて頂きます!!
今回の様な場合は、昇順に並べてから反転させなくても符号反転
がスマートなようです!
sort_maxsize = array.sort_by! { |x| -x[:max_size] }
コメント頂きありがとうございました!