- 在ruby中组合数组的数组

这个是初学者的 ruby 问题:在 ruby 中组合两个数组的最惯用方法是什么?


a = [[0, 0, 0]]


b = [[1, 1, 1]]



我想找到像C这样的


c = [[0, 0, 0], [1, 1, 1]]



我已经能够通过一个循环来解决这个问题,但似乎无法找到一种"感觉"正确的方式。

时间:

chain是Enumerables最近添加的一种方法


a = [[0, 0, 0]]


b = [[1, 1, 1]]


p a.chain(b).to_a # => [[0, 0, 0], [1, 1, 1]]



为什么不直接连接 Array#+a + b


a = [[0, 0, 0]]


b = [[1, 1, 1]]



c = a + b


c #=> [[0, 0, 0], [1, 1, 1]]



一种方法是:


c = [a.flatten] + [b.flatten]



虽然你也可以:


c = [a.first] + [b.first]



我希望还有其他的。

你也可以使用 concat:


a = [[0, 0, 0]]


b = [[1, 1, 1]]



c = a.concat(b)


c #=> [[0, 0, 0], [1, 1, 1]]



但是请注意它将 b的元素附加到 a 中,这可能比 a + b ( 连接 ab的新数组) 便宜,但是修改了 a


a #=> [[0, 0, 0], [1, 1, 1]]


b #=> [[1, 1, 1]]


c #=> [[0, 0, 0], [1, 1, 1]]



...