【发布时间】:2016-02-22 20:39:24
【问题描述】:
我有一个嵌套哈希 pdf_hash,它具有三个公共键 :x、:y 和 :text。
我知道键 :text 的值。现在我必须浏览 PDF 的每一页,并为给定的 :text => value 获取 :x 和 :y 的键值对。
这是我当前的代码:
def deep_find(pdf_hash, value, found=nil)
if pdf_hash.respond_to?(:value?) && pdf_hash.value?(value)
return pdf_hash[:x] && pdf_hash[:y]
puts pdf_hash[:x] && pdf_hash[:y]
elsif pdf_hash.is_a? Enumerable
pdf_hash.find {|*a| found = deep_find(a.last, value) }
return found
end
end
deep_find(coordinates, "YOUR DUE DATE CHANGE REQUEST")
但它没有打印任何结果。
我也试过 value = "您的截止日期更改请求"
texts = coordinates.map do|page|
page[:lines].find {|a| a[:text] == value}
puts "#{:x} && #{:y}"
end
这是打印 x && y 每次找到给定值时。 但我也需要 x 和 y 的值。 如何打印键和值?
【问题讨论】:
-
我不明白你为什么在这里面有个问号:
(:value?) -
@JohnMessenger 因为他们正在测试
pdf_hash是否响应名为value?的方法(在同一行调用)。 -
比较给定的值和Hash中的值
标签: ruby-on-rails ruby hashmap