2012-08-09 57 views
0

我有联系的数组进行:查找字符串数组项哈希阵列,并与相应的哈希

array = [link1, link2, link3, link4]
和array_of_hashes两个项目:名称和:链接

 
hash = { :names, :links } e.g. 
array_of_hashes = [{ :names => name5, :links => link5}, {:names = name1, :links => link1}, ... ]

我想对来自array_of_hashes的每对哈希值(:名称:链接)进行一些操作,其中包括来自原始链接数组的链接。

因此,在最后阶段,我需要找到一对散列(在我的情况如上所列):

{:names => name1, :links => link1}

原因LINK1与链接

UPD阵列中列出:修正后的数据...抱歉误会。感谢你的帮助。

+1

真的不清楚在你想达到什么 - 你试图过滤'array_of_hashes'基于'links'值是否出现在'array'中? – 2012-08-09 07:03:38

+0

是的,我试图从array_of_hashes中为数组中的每个链接查找名称。 – jagga99 2012-08-09 07:09:51

+0

所以,你基本上想要'array_of_hashes'的副本,但只包含* array中存在的链接? – 2012-08-09 07:16:00

回答

2

如果我正确理解你的问题,这应该做你想做的:

# Cleaned up the setup a little 
array_of_hashes = [ 
    {:names => 'name5', :links => 'link5'}, 
    {:names => 'name1', :links => 'link1'}, 
    {:names => 'name9', :links => 'link9'}] 

array = ['link5', 'link1'] 

# This will filter the array 
array_of_hashes.select{|x| array.include? x[:links]} 

这使输出=> [{:names=>"name1", :links=>"link1"}]