1. ホーム
  2. ruby

Ruby: 配列の配列を1つに連結する方法

2023-10-13 11:21:25

質問

Ruby on Rails(3.1)で配列の配列を持っていますが、内部の配列はすべて異なるサイズになっています。すべての内部配列を簡単に連結して、すべてのアイテムを持つ1つの大きな1次元の配列を取得する方法はありますか?

2つの配列を連結するためにArray::concat関数を使用できることを知っていますし、私はこのように順次連結するループを行うことができます。

concatenated = Array.new
array_of_arrays.each do |array|
    concatenated.concat(array)
end

が、Rubyのワンライナーのような、よりクリーンな方法でそれを行うものがあるかどうかを知りたかったのです。

ありがとうございました。

どのように解決するのですか?

あなたが探しているのは #flatten :

concatenated = array_of_arrays.flatten

デフォルトでは、これはリストを再帰的に平坦化します。 #flatten は再帰的な深さを制限するためのオプションの引数を受け付けます。ドキュメントでは、その違いを説明するための例を挙げています。