首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过哈希值查找散列数组的交集

通过哈希值查找散列数组的交集
EN

Stack Overflow用户
提问于 2014-06-18 22:06:00
回答 1查看 1.9K关注 0票数 6

例如,如果我有两个散列数组:

代码语言:javascript
复制
user1.id
=> 1
user2.id
=> 2

user1.connections = [{id:1234, name: "Darth Vader", belongs_to_id: 1}, {id:5678, name: "Cheese Stevens", belongs_to_id: 1}]

user2.connections = [{id:5678, name: "Cheese Stevens", belongs_to_id: 2}, {id: 9999, "Blanch Albertson", belongs_to_id: 2}]

那么在Ruby中如何通过哈希id值找到这两个数组的交集呢?

所以对于上面的例子

代码语言:javascript
复制
intersection = <insert Ruby code here>
=> [{id: 5678, name: "Cheese Stevens"}]

我不能仅仅使用intersection = user1.connections & user2.connections,因为belongs_to_id是不同的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-18 22:12:47

很简单:

代码语言:javascript
复制
user1.connections & user2.connections

如果只需要id键(其他属性不同)

代码语言:javascript
复制
intersection = user1.connections.map{|oh| oh[:id]} & user2.connections.map{|oh| oh[:id]}
user1.connections.select {|h| intersection.include? h[:id] }

希望能帮上忙!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24295763

复制
相关文章

相似问题

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