Rubyのflattenメソッドとは
Rubyのflattenメソッドは、多次元配列やハッシュを、一次元配列にする変換することができるメソッドです。
flattenメソッドは以下の構文で使用することができます。
多次元配列.flatten
ハッシュ.flatten
また、引数に数値を指定すると、何階層目まで平坦にするか決めることができます。
多次元配列.flatten(階層)
ハッシュ.flatten(階層)
Rubyのflattenメソッドを使用したコード例
以下のケースを挙げて、flattenメソッドの具体的な使い方を紹介します。
- 多次元配列を1次元配列に変換する
- 多次元配列を階層指定して平坦化する
- ハッシュを1次元配列に変換する
それでは、順に解説しますね。
多次元配列を1次元配列に変換する
flattenを使うと以下のような多次元配列を簡単に一次元配列に変換できます。
[1, 2, [3, 4, [5, 6, 7, [8, 9], 10], 11]].flatten
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
多次元配列を階層指定して平坦化する
1階層目と2階層目までを平坦にする場合、次のように引数を渡します。
[1, 2, [3, 4, [5, 6, 7, [8, 9], 10], 11]].flatten(1)
# => [1, 2, 3, 4, [5, 6, 7, [8, 9], 10], 11]
[1, 2, [3, 4, [5, 6, 7, [8, 9], 10], 11]].flatten(2)
# => [1, 2, 3, 4, 5, 6, 7, [8, 9], 10, 11]
ハッシュを1次元配列に変換する
ハッシュに対してflattenメソッドを使用すると、以下のように配列に変換することができます。
{ "kato" => 23, "sato" => 19, "ito" => 22 }.flatten
# => ["kato", 23, "sato", 19, "ito", 22]