1

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

这就像将 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 及更高版本附带的香草 Ruby 来完成这项工作。这是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 回答