在ruby中连接多个数组

时间:2012-05-29 20:03:40

标签: ruby

我正在尝试创建一个接受嵌套数组的方法。从该嵌套数组中,我需要返回子数组可以进行的所有可能组合。我一直在努力工作几个小时,但仍然无法让它工作。

这就像将sub_array的每个元素与其他sub_arrays中的每个元素连接起来。

示例:

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附带的vanilla Ruby来完成这项工作。它是1.8.7,对吧?

感谢。

1 个答案:

答案 0 :(得分:2)

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