1

ネストされた配列を受け入れるメソッドを作成しようとしています。そのネストされた配列から、サブ配列によって作成できるすべての可能な組み合わせを返す必要があります。私は今何時間もそれに取り組んでいます、そして私はまだそれを動かすことができません。

これは、sub_arrayの各要素を他のsub_arrayの各要素と連結するようなものです。

例:

mega_array = [["a","b"],["c","d"],["e","f"]]

my_method(mega_array)

=> ["ace","acf","ade","adf","bce","bcf","bde","bdf"]

これは、次のコードによって実現されます。

mega_array[0].each do |first|
    mega_array[1].each do |second|
        mega_array[2].each do |third|
            puts first + second + third
        end
    end
end

残念ながら、サブアレイの数は変わる可能性があります。これは私が立ち往生しているところです。いくつかの再帰的な手法を実行しようとしましたが、それでも正しく理解できません。

助けていただければ幸いです。Leopard以降に付属しているバニラルビーでこれを機能させる必要があります。1.8.7ですよね?

ありがとう。

4

1 に答える 1

2
>> mega_array[0].product(*mega_array[1..-1]).map(&:join)
=> ["ace", "acf", "ade", "adf", "bce", "bcf", "bde", "bdf"]
于 2012-05-29T20:08:41.030 に答える