✳️ Hash#sort -> Array
#RubySilver
破壊的じゃない
破壊的にしたかったらsort!
code: .rb
# key, value を要素とする配列の配列に変換
{ "a" => 20, "b" => 30, "c" => 10 }.sort
=> "a", 20], "b", 30, ["c", 10
# 数値の場合
# バリューが昇順の順にソートされる
{ "a" => 20, "b" => 30, "c" => 10 }.sort {|a,b| a1<=>b1}
=> "c", 10], "a", 20, ["b", 30 # 10→20→30
# バリューが降順の順にソートされる
{ "a" => 20, "b" => 30, "c" => 10 }.sort {|a,b| b1<=>a1}
=> "b", 30], "a", 20, ["c", 10# 30→20→10
# バリューがStringの場合、アルファベット順
h = { "a" => "banana", "b" => "apple", "c" => "cherry" }
# アルファベットの場合
# バリューが昇順 = アルファベット順
{ "a" => "banana", "b" => "apple", "c" => "cherry" }.sort {|a,b| a1<=>b1}
=> "b", "apple"], "a", "banana", ["c", "cherry" # a → b → c
# バリューが降順 = アルファベット順の逆
{ "a" => "banana", "b" => "apple", "c" => "cherry" }.sort {|a,b| b1<=>a1}
=> "c", "cherry"], "a", "banana", ["b", "apple" # c → b → a
模擬問題
code:.rb
{"Foo"=>"hoge", "Bar"=>"piyo", "Baz"=>"fuga"}.sort{|a, b| a1 <=> b1 }
# valueが、昇順=アルファベットの若い順
# fuga→hoge→piyo
=> "Baz", "fuga"], "Foo", "hoge", ["Bar", "piyo"