2012-05-29 39 views
1

我试图做一个接受嵌套数组的方法。从该嵌套数组中,我需要返回可由子数组创建的所有可能的组合。我现在已经工作了好几个小时了,但仍然无法工作。在ruby中连接多个数组

这就像连接一个子数组的每个元素与其他子数组中的每个元素。

例如:

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,对吧?

谢谢。

回答

2
>> mega_array[0].product(*mega_array[1..-1]).map(&:join) 
=> ["ace", "acf", "ade", "adf", "bce", "bcf", "bde", "bdf"] 
+0

哇。搞定了!非常感谢你! – dashmug