Push array into array on ruby by just one level

只谈情不闲聊 提交于 2019-12-14 02:20:08

问题


Given:

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

I want to turn a into [[1,"a"],[2,"b"][3,"c"],[4,"d"]]. How can do this without +? It creates a new array, which I want to avoid.

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

回答1:


a.concat(b)

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




回答2:


a = [[1,"a"],[2,"b"]]
b = [[3,"c"],[4,"d"]]
a[a.length, 0] = b
a
# > [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]



回答3:


concat is the answer, but you could do this:

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 



回答4:


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



回答5:


What about?

a.push(b.shift) while b.any?



回答6:


How about this?

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


来源:https://stackoverflow.com/questions/32240574/push-array-into-array-on-ruby-by-just-one-level

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!