1

我正在尝试做一些与此大致类似的事情

collection = []
pair_one = [[:ae1,:be1],[:ae2,:be2]]
collection << pair_one
pair_two = [[:ae3,:be3],[:ae4,:be4]]
collection << pair_two

问题是collection这样的:

[[[:ae1, :be1], [:ae2, :be2]], [[:ae3, :be3], [:ae4, :be4]]] 

我希望它是这样的:

[[:ae1, :be1], [:ae2, :be2], [:ae3, :be3], [:ae4, :be4]]

我应该使用什么方法来代替<<

基本上我想添加 和 的内容,不是数组本身。什么数组方法正在逃避我的记忆?pair_onepair_twocollection

4

1 回答 1

2

您可以使用concat,+=|=

concat避免不必要的对象创建。
|=消除重复。

collection = []
#=> []
pair_one = [[:ae1,:be1],[:ae2,:be2]]
collection += pair_one
#=> [[:ae1, :be1], [:ae2, :be2]]
pair_two = [[:ae3,:be3],[:ae4,:be4]]
collection += pair_two
#=> [[:ae1, :be1], [:ae2, :be2], [:ae3, :be3], [:ae4, :be4]]
于 2012-11-07T02:54:24.793 回答