首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >rails -查找多个数组之间的交集

rails -查找多个数组之间的交集
EN

Stack Overflow用户
提问于 2010-07-08 01:47:23
回答 3查看 35.2K关注 0票数 80

我正在尝试寻找多个数组之间的交叉值。

例如

代码语言:javascript
复制
code1 = [1,2,3]
code2 = [2,3,4]
code3 = [0,2,6]

所以结果应该是2

我知道在PHP中你可以用array_intersect做到这一点。

我希望能够轻松地添加额外的数组,所以我不想使用多个循环

有什么想法吗?

谢谢,亚历克斯

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-08 01:51:48

使用Array&方法,该方法用于设置交集。

例如:

代码语言:javascript
复制
> [1,2,3] & [2,3,4] & [0,2,6]
=> [2]
票数 123
EN

Stack Overflow用户

发布于 2013-02-13 03:50:48

如果您想用一种更简单的方法来处理长度未知的数组,可以使用inject。

代码语言:javascript
复制
> arrays = [code1,code2,code3]
> arrays.inject(:&)                   # Ruby 1.9 shorthand
=> [2]
> arrays.inject{|codes,x| codes & x } # Full syntax works with 1.8 and 1.9
=> [2]
票数 53
EN

Stack Overflow用户

发布于 2020-04-14 06:16:01

Array#intersection (拼音2.7+)

为了匹配更简洁的Array#&,Ruby2.7引入了Array#intersection方法。

因此,现在可以用更冗长的方式重写[1, 2, 3] & [2, 3, 4] & [0, 2, 6],例如

代码语言:javascript
复制
[1, 2, 3].intersection([2, 3, 4]).intersection([0, 2, 6])
# => [2]

[1, 2, 3].intersection([2, 3, 4], [0, 2, 6])
# => [2]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3197412

复制
相关文章

相似问题

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