[Ruby]2つのハッシュ(Hash)同士を結合するには?

Ruby

どうも、ちょげ(@chogetarou)です。

2つのハッシュ(Hash)同士を結合する方法を紹介します。

スポンサーリンク

方法

2つのハッシュ(Hash)同士を結合するには、Hash#mergeメソッドを使います。

まず、片方のハッシュからmergeメソッドを呼び出します。

そして、mergeメソッドの引数にもう片方のハッシュを指定します。

#h1, h2=結合するハッシュ
result = h1.merge(h2)

上記のmergeメソッドは、呼び出したハッシュ(Hash)の後ろに引数のハッシュを結合した結果を返します。

mergeメソッドは、呼び出したハッシュに影響を与えません。

もし、呼び出したハッシュに直接結合したい場合は、merge!メソッドを使います。

#呼び出したハッシュに直接結合する
h1.merge!(h2)

使用例

nums1 = { 
    "one" => 1, 
    "two" => 2,
    "three" => 3,
    "four" => 4,
    "five" => 5,
}

nums2 = {
    "six" => 6,
    "seven" => 7,
    "eight" => 8,
}

result = nums1.merge(nums2)

p result
出力:
{"one"=>1, "two"=>2, "three"=>3, "four"=>4, "five"=>5, "six"=>6, "seven"=>7, "eight"=>8}

コメント

タイトルとURLをコピーしました