Ruby Rails-使用HTTParty遍历json哈希和数组
因此,我有下面的业务发生,这是有效的。。。但即使是新手,我也觉得这看起来很可怕 结构如下: “每个产品都有一组艺术家。仅返回具有正确艺术家的产品”Ruby Rails-使用HTTParty遍历json哈希和数组,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,因此,我有下面的业务发生,这是有效的。。。但即使是新手,我也觉得这看起来很可怕 结构如下: “每个产品都有一组艺术家。仅返回具有正确艺术家的产品” def fetch_产品(艺术家) result=get(“/#{@id}/products.js”,:headers=>{'Accept'=>'application/json'}) 产品=[] 结果.每个do |产品| 如果不是产品['artists'],则查找所有{i | i['name'].downcase==artist.downcase}
def fetch_产品(艺术家)
result=get(“/#{@id}/products.js”,:headers=>{'Accept'=>'application/json'})
产品=[]
结果.每个do |产品|
如果不是产品['artists'],则查找所有{i | i['name'].downcase==artist.downcase}.empty?
产品代码并不像现在这样糟糕。但是,您可以跳过结果。每个
循环只需直接使用find_all
即可获得您正在查找的所有实例,而无需循环
一个简单的例子:
x={ :a => ['a','b'] , :b => ['c','d'], :c=>['b','e']}
x.find_all { |k,v| !v.grep(/^A$/i).empty? }
返回:
[[:a, ["a", "b"]]]
grep
方法搜索v
(散列值-数组)以查找与特定正则表达式匹配的任何条目
如果您不想使用grep
,您可以直接实现您的逻辑:
x.find_all {|k,v| v.any? { |m| m.downcase == "a" } }
代码并没有那么糟糕。但是,您可以跳过结果。每个
循环只需直接使用find_all
即可获得您正在查找的所有实例,而无需循环
一个简单的例子:
x={ :a => ['a','b'] , :b => ['c','d'], :c=>['b','e']}
x.find_all { |k,v| !v.grep(/^A$/i).empty? }
返回:
[[:a, ["a", "b"]]]
grep
方法搜索v
(散列值-数组)以查找与特定正则表达式匹配的任何条目
如果您不想使用grep
,您可以直接实现您的逻辑:
x.find_all {|k,v| v.any? { |m| m.downcase == "a" } }
太好了!第二个例子很清楚,应该很有用。谢谢你的提醒。我一直在努力如何正确地把积木放在积木中,但这很明显。太棒了!第二个例子很清楚,应该很有用。谢谢你的提醒。我一直在努力如何正确地把积木放在积木中,但这很明显。