[Ruby]配列やハッシュの中身を並び替えたい!

sortメソッド

sortは、配列やハッシュの中身を昇順(データの値が小さい順)に並び替えるメソッド。

返り値は、keyを基準に並び替えられた配列やハッシュを新たな配列として返す。

*配列とハッシュ以外には使えない(文字列など)

① [4, 8, 2, 5, 3].sort
=> [2, 3, 4, 5, 8]

② [["Yasuda", 5], ["Fujiwara", 2], ["Nakamura", 8]].sort
=> [["Fujiwara", 2], ["Nakamura", 8], ["Yasuda", 5]]

③ { b: 2, c: 1, a: 3 }.sort
=> [[:a, 3], [:b, 2], [:c, 1]]

④ "a, b, c".sort
NoMethodError: undefined method `sort' for "a, b, c":String

reverseメソッド

reverseは、文字や数字の順番を反転させるメソッド。

上記のsortと一緒に使って、降順に並び替える。

① [4, 8, 2, 5, 3].sort.reverse
=> [8, 5, 4, 3, 2]

② [["Yasuda", 5], ["Fujiwara", 2], ["Nakamura", 8]].sort.reverse
=> [["Yasuda", 5], ["Nakamura", 8], ["Fujiwara", 2]]

③ { b: 2, c: 1, a: 3 }.sort.reverse
=> [[:c, 1], [:b, 2], [:a, 3]]
タイトルとURLをコピーしました