Just do IT

思うは招く

Ruby で配列を展開して push したい

以下のような配列があったとする。

ary = ['a', 'b']
hoge = ['c','d']

普通に push すると、多次元配列になる。

ary.push(hoge)
=> ["a", "b", ["c", "d"]]

*をつけると、引数として渡された配列が展開されて push できる。(splat展開と呼ぶ)

ary.push(*hoge)
=> ["a", "b", "c", "d"]

ちなみに、多次元配列はflattenで一次元配列にできる。

 ["a", "b", ["c", "d"]].flatten
=> ["a", "b", "c", "d"]

Array#flatten (Ruby 2.7.0 リファレンスマニュアル)

参考

プロを目指す人のためのRuby入門 4.7.6