flatten
フラットン(言語の基礎)
意味 多次元配列を1次元に平坦化
flattenとは?
flattenメソッドは、多次元配列(配列の中に配列がある状態)を1次元の配列に平坦化します。つまり、ネストされた配列の要素をすべて取り出して、1つの配列にまとめます。元の配列は変更せず、新しい平坦化された配列を返します。
flattenの具体的な使い方
多次元配列を平坦化する例
nested_array = [1, [2, 3, [4, 5]], 6, [7, [8, 9]]]
flat_array = nested_array.flatten
puts "元の多次元配列: #{nested_array}"
puts "平坦化した配列: #{flat_array}"
👇出力結果
元の多次元配列: [1, [2, 3, [4, 5]], 6, [7, [8, 9]]]
平坦化した配列: [1, 2, 3, 4, 5, 6, 7, 8, 9]
この例では、複雑にネストされた多次元配列をflattenメソッドで完全に平坦化し、すべての要素が同じレベルに並んだ新しい1次元配列を作成しています。
深さを指定した平坦化の例
deep_array = [1, [2, [3, [4]]], 5, [6, [7]]]
partial_flat1 = deep_array.flatten(1)
partial_flat2 = deep_array.flatten(2)
puts "元の多次元配列: #{deep_array}"
puts "1レベル平坦化: #{partial_flat1}"
puts "2レベル平坦化: #{partial_flat2}"
👇出力結果
元の多次元配列: [1, [2, [3, [4]]], 5, [6, [7]]]
1レベル平坦化: [1, 2, [3, [4]], 5, 6, [7]]
2レベル平坦化: [1, 2, 3, [4], 5, 6, 7]
flattenメソッドに引数を渡して、平坦化の深さを指定する例です。引数を指定することで、どの深さまで平坦化するかをコントロールできます。
flattenと他のメソッドを組み合わせた例
data = [[1, 2], [3, 4], [5, 6]]
result = data.flatten.select(&:even?).map { |n| n ** 2 }
puts "元のデータ: #{data}"
puts "処理後の結果: #{result}"
👇出力結果
元のデータ: [[1, 2], [3, 4], [5, 6]]
処理後の結果: [4, 16, 36]
この例では、flattenを使って2次元配列を1次元に平坦化し、その後偶数のみを選択し、さらにそれらを2乗しています。複数のメソッドを組み合わせて、複雑な処理を簡潔に記述できることを示しています。
flattenに関するよくある質問
flattenが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのflattenやabs、/、**、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Rubyを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!