将数组推入 ruby 上的数组仅一级

Push array into array on ruby by just one level

鉴于:

a = [[1,"a"],[2,"b"]]
b = [[3,"c"],[4,"d"]]

我想把a变成[[1,"a"],[2,"b"][3,"c"],[4,"d"]]。没有 + 怎么办?它创建了一个我想避免的新数组。

(a << b).flatten(1)
# => [1, "a", 2, "b", [3, "c"], [4, "d"]]
a.concat(b)

.......................

怎么样?

a.push(b.shift) while b.any?
a = [[1,"a"],[2,"b"]]
b = [[3,"c"],[4,"d"]]
a[a.length, 0] = b
a
# > [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]

concat 是答案,但您可以这样做:

a.object_id    #=> 70223889895340
a.replace(a+b) #=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
a              #=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
a.object_id    #=> 70223889895340 
> b.inject(a, :<<)
#=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]

这个怎么样?

a + b 
=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]