0

很抱歉因为我的错而误会我没有检查项目的类别......

我有一个数组:

数组 = [链接 1、链接 2、链接 3、链接 4 等]

和 array_of_hashes 有两个项目:名称和链接

哈希 = [ :names, :links ] 例如
array_of_hashes = [{ :names => name1, :links => link1}, {:names = name2, :links => link2}, ... ]

我想对 array_of_hashes 中的每对项目做一些事情,其中​​包括来自数组的链接。

UPD:修改后的数据...抱歉误解。

4

2 回答 2

0

枚举哈希数组并搜索链接数组。

array = [:link1, :link2, :link3]
array_of_hashes = [{ :names => :name1, :links => :no_link}, {:names => :name2, :links => :link2}]

array_of_hashes.each do |hash|
  if array.any? {|s| s==hash[:links]}
    puts "Do something with #{hash[:names].to_s}"
  end
end
于 2012-08-08T14:49:28.077 回答
0

这是一个有点模糊的问题,但这里是一个镜头。

您将需要重新排序您尝试从哈希访问的内容,除非 :name 是必需的。

arr = ["link0", "link1",..."linkN"]
hsh = { "link0", item0, "link1", item1, "link1", item2,..."linkN", itemN}
hsh.each_pair | link, item |
  do_something_foo(item) if arr.include?(link) # do_something_foo is a predefined function
end

jagga99 写道

我想对包含数组链接的哈希中的每个项目做一些事情。非常感谢你的帮助。

如果 [:name, :link] 是 require 对,那么您需要确定哪个部分是要处理的项目:名称或链接。

于 2012-08-08T17:46:28.483 回答