Ruby:组合数组

use*_*606 -4 ruby arrays multidimensional-array

我试图结合这些数组:

[[1,2,3],[4,5,6],[7,8,9]]

[["a","b"], ["c","d"], ["e","f"]]
Run Code Online (Sandbox Code Playgroud)

以下列方式:

[[1,2,3,"a","b"], [4,5,6,"c","d"], [7,8,9,"e","f"]]
Run Code Online (Sandbox Code Playgroud)

但我无法找到正确的答案.

Aug*_*ust 6

首先,将数组交织Enumerable#zip,然后flatten将新数组中的每个元素交织:

a = [[1,2,3],[4,5,6],[7,8,9]]
b = [["a","b"], ["c","d"], ["e","f"]]

a.zip(b).map(&:flatten)
# => [[1, 2, 3, "a", "b"], [4, 5, 6, "c", "d"], [7, 8, 9, "e", "f"]]
Run Code Online (Sandbox Code Playgroud)

如果您不熟悉,"椒盐卷饼结肠语法" foo(&:bar)等同于foo { |x| x.bar }(不是真正的语法,只是一种方法调用).