配列の値をハッシュのキーとバリューに変換する方法
配列の値をハッシュのキーとバリューに変換する方法
実務で書かれていたコードでなるほど!というRubyのコードがあったので備忘録としてメモします。
配列のこういう値があったとします。
["A", "B", "C", "D", "E", "F", "G"]
これをこんな感じでhashのkey_valueに変換したいときにどう実装すればよいでしょうか?
{"A"=>"A", "B"=>"B", "C"=>"C", "D"=>"D", "E"=>"E", "F"=>"F", "G"=>"G"}
STEP1 配列作成
とりあえず、配列作ります。
hoge = ["A", "B", "C", "D", "E", "F", "G"]
STEP2 配列のzipメソッド利用してハッシュ化する前に整形する。
配列のzipメソッド利用すると自身と引数に渡した配列の各要素からなる配列の配列を生成して返します。 https://docs.ruby-lang.org/ja/latest/method/Array/i/zip.html
irb(main):024:0> hogehoge = hoge.zip(hoge) => [["A", "A"], ["B", "B"], ["C", "C"], ["D", "D"], ["E", "E"], ["F", "F"], ["G", "G"]]
STEP2 ハッシュ化する
to_h
メソッドでハッシュに変更します。
irb(main):026:0> hogehoge.to_h => {"A"=>"A", "B"=>"B", "C"=>"C", "D"=>"D", "E"=>"E", "F"=>"F", "G"=>"G"}
完成!!
まとめ
Rubyは様々なメソッドがあって便利ですよね!