将数组的zip数组压缩到另一个数组

Pat*_*sai 6 ruby

假设我有一个数组

arr1 = ["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)

我想将一个数组数组压缩到它

arr2 = [[1, "foo"], [2, "bar"], [3, "baz"]]
Run Code Online (Sandbox Code Playgroud)

所以最终的结果是

[["a", 1, "foo"], ["b", 2, "bar"], ["c", 3, "baz"]]
Run Code Online (Sandbox Code Playgroud)

现在我正在做的是arr1.zip(arr2).map!(&:flatten),但我想知道是否有更好的方法来做到这一点?

Dog*_*ita 12

另一种方式是:

arr1.zip(*arr2.transpose)
# => [["a", 1, "foo"], ["b", 2, "bar"], ["c", 3, "baz"]]
Run Code Online (Sandbox Code Playgroud)