首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ruby中合并和交错两个数组

在Ruby中合并和交错两个数组
EN

Stack Overflow用户
提问于 2011-09-06 05:02:34
回答 11查看 95.1K关注 0票数 107

我有以下代码:

代码语言:javascript
复制
a = ["Cat", "Dog", "Mouse"]
s = ["and", "&"]

我想将数组s合并到数组a中,这样就可以得到:

代码语言:javascript
复制
["Cat", "and", "Dog", "&", "Mouse"]

纵观Ruby Array和Enumerable文档,我看不到这样的方法可以做到这一点。

有没有办法不用遍历每个数组就能做到这一点呢?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-09-06 05:15:54

您可以使用以下命令来完成此操作:

代码语言:javascript
复制
a.zip(s).flatten.compact
票数 171
EN

Stack Overflow用户

发布于 2011-09-06 10:10:39

这不会按照Chris要求的顺序给出结果数组,但是如果结果数组的顺序无关紧要,您可以只使用a |= b。如果不想改变a,可以编写a | b并将结果赋给一个变量。

请参阅http://www.ruby-doc.org/core/classes/Array.html#M000275上的数组类的set union文档。

这个答案假设你不想要重复的数组元素。如果你想在你的最终数组中允许重复的元素,a += b应该做到这一点。同样,如果您不想改变a,请使用a + b并将结果赋给一个变量。

为了回应本页上的一些评论,这两个解决方案将适用于任何大小的数组。

票数 34
EN

Stack Overflow用户

发布于 2014-12-05 17:19:45

如果不想重复,为什么不直接使用union运算符:

代码语言:javascript
复制
new_array = a | s
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7312713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档