技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

配列の値をハッシュのキーとバリューに変換する方法

配列の値をハッシュのキーとバリューに変換する方法

実務で書かれていたコードでなるほど!という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は様々なメソッドがあって便利ですよね!