私は次のような構造Rubyでサブアレイを平坦化する方法は?
a = [['a', 'b', 'c'], ['d', 'e', 'f'], [['g', 'h', 'i'], ['l', 'm', 'n']]]
を持っていると私は、次を取得したい:
[['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ['l', 'm', 'n']]
私は次のことを試してみた:
a.flatten => ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'l', 'm', 'n']
a.flatten(1) => ['a', 'b', 'c', 'd', 'e', 'f', ['g', 'h', 'i'], ['l', 'm', 'n']]
私が見つけた解決策を、今のところ初期の構造を次の形式に変更することです:
b = [[['a', 'b', 'c']], [['d', 'e', 'f']], [['g', 'h', 'i'], ['l', 'm', 'n']]]
、その後
b.flatten(1) => [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ['l', 'm', 'n']]
を呼び出すが、私はa
が構築された方法を変更することができただけので、私はこれを行うことができます。私の質問は残っています:a
からの希望の結果を得るには?
あなたは/トリプル(サイズ3の配列を)持っている必要があることがわかっている場合、私はあなたの質問に答えていない溶液で行く:)と '平らにしたいですスライスしてください。 – Felix
いいえ、各配列内の要素数は固定されておらず、配列とサブアレイの数も – coorasse