Ruby Tips!

RubyのTipsを紹介します

2つのハッシュのキーを比較する

ハッシュのキーはHash#keysで配列として取り出すことができる。これを利用すれば、2つのハッシュのキーを比較して、両方に存在するキー、一方にしかないキーを抽出できる。

両方にあるキーを抽出するには以下。

h1 = {:hoge => true, :piyo => true}
h2 = {:piyo => true, :fuga => true}
p h1.keys & h2.keys #=> [:piyo]

一方にしか無いキーを抽出するには以下。

h1 = {:hoge => true, :piyo => true}
h2 = {:piyo => true, :fuga => true}
p (h1.keys | h2.keys) - (h1.keys & h2.keys) #=> [:hoge, :fuga]