我正在尝试创建一个接受嵌套数组的方法。从该嵌套数组中,我需要返回子数组可以进行的所有可能组合。我一直在努力工作几个小时,但仍然无法让它工作。
这就像将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,对吧?
感谢。
答案 0 :(得分:2)
>> mega_array[0].product(*mega_array[1..-1]).map(&:join)
=> ["ace", "acf", "ade", "adf", "bce", "bcf", "bde", "bdf"]