$cat2koban->blog;

猫の手も借りたい

Ruby で配列の要素を展開して別の配列に格納する

TL;DR

pry[0]> arrayA = [1, 2, 3,]
pry[1]> arrayB = [4, 5]
pry[2]> arrayA.push(*arrayB)

=> [1, 2, 3, 4, 5]

経緯

配列の中に要素を展開して入れて欲しいときはどうしたら... ある時ふとそんな気持ちになりました。

pry[0]> arrayA = [1, 2, 3,]
pry[1]> arrayB = [4, 5]
pry[2]> arrayA.push(arrayB)

=> [1, 2, 3, [4, 5]]

そこでいろいろ調べてみるとこんな記事が見つかりました。 一番上の記事は、 ruby 配列 要素 展開 [検索] とかで調べた記憶があります。

qiita.com alpaca.tc scrapbox.io

結論

push する配列に splat operator (*) なるものをつけてあげるだけで良さそう

pry[0]> arrayA = [1, 2, 3,]
pry[1]> arrayB = [4, 5]
pry[2]> arrayA.push(*arrayB)

=> [1, 2, 3, 4, 5]