我想将一个 Ruby 数组(可能包含一些子数组)扩展为另一个数组数组,就像在这些示例中一样:
示例 1:[:foo, :bar]
[
[:foo, :bar]
]
示例 2:[:foo, :bar, [:ki, :ku]]
[
[:foo, :bar, :ki],
[:foo, :bar, :ku]
]
示例 3:[:foo, :bar, :baz, [:a, :i, :u, :e, :o], :qux]
[
[:foo, :bar, :baz, :a, :qux],
[:foo, :bar, :baz, :i, :qux],
[:foo, :bar, :baz, :u, :qux],
[:foo, :bar, :baz, :e, :qux],
[:foo, :bar, :baz, :o, :qux]
]
示例 4:[:foo, :bar, :baz, [:a, :i, :u, :e, :o], [1, 2], :qux]
[
[:foo, :bar, :baz, :a, 1, :qux],
[:foo, :bar, :baz, :i, 1, :qux],
[:foo, :bar, :baz, :u, 1, :qux],
[:foo, :bar, :baz, :e, 1, :qux],
[:foo, :bar, :baz, :o, 1, :qux],
[:foo, :bar, :baz, :a, 2, :qux],
[:foo, :bar, :baz, :i, 2, :qux],
[:foo, :bar, :baz, :u, 2, :qux],
[:foo, :bar, :baz, :e, 2, :qux],
[:foo, :bar, :baz, :o, 2, :qux]
]
示例 5:[:foo, [[], :c], :bar]
[
[:foo, [], :bar],
[:foo, :c, :bar]
]
示例 6:[:foo, [[:a, :b], :c], :bar]
[
[:foo, [:a, :b], :bar],
[:foo, :c, :bar]
]
注意:仅应扩展子数组。这就是为什么在示例 5 和 6 中,子子数组没有展开。
非常感谢您的任何建议或代码。