Rubyでハッシュ値から配列、配列からハッシュ値変換をしよう!

Rubyでハッシュ値から配列、配列からハッシュ値への変換が

たまに必要になるので方法をご紹介いたします(*^^*)

まずは、ハッシュ値testを配列にto_aを使用し変換してみます。

# ハッシュ値から配列へ
test = {Kanto: 'tokyo', Kansai: 'Osaka', Kyushu: 'Fukuoka'}
p test2 = test.to_a
# => [[:Kanto, "tokyo"], [:Kansai, "Osaka"], [:Kyushu, "Fukuoka"]]

配列の0番目には以下のような内容が入ります。

p test2[0][0]
# => :Kanto
p test2[0][1]
# => "tokyo

 

次に配列にした値をハッシュ値にto_hを使って戻していきましょう。

# 配列からハッシュ値へ
p test2.to_h
# => {:Kanto=>"tokyo", :Kansai=>"Osaka", :Kyushu=>"Fukuoka"}

できましたね(*^^*)

 

また、以下のような配列はエラーになるため注意が必要です。

ポイントはキーがないか、数値の場合ですね。

num_array2 = [[:1, 1], [:2, 2], [:3, 3], [:4, 4]] 
num_array2.to_h 
# => ERROR
num_array = [1,2,3,4] 
num_array.to_h 
# => ERROR

 

何か参考になれば幸いです(*^^*)