检查ruby散列是否包含大于x

时间:2017-03-21 15:53:13

标签: ruby hash

我有一个从InfluxDB查询返回的以下对象,我希望能够检查是否有任何衍生物等于或大于100,如果是,那么就做。

我一直在尝试使用select检查该字段,但我实际上并不了解如何使用这样的数据结构。我将如何迭代返回的对象中的每个派生值?

我并没有真正看到一个类似于我在枚举文档中的情况的例子。 https://ruby-doc.org/core-2.4.0/Enumerable.html

 [{
   "name" => "powerdns_value", 
             "tags" => nil,
             "values" => [
               { "time" => "2017-03-21T14:20:00Z", "derivative" => 1}, 
               { "time" => "2017-03-21T14:30:00Z", "derivative" => 900}, 
               { "time" => "2017-03-21T14:40:00Z", "derivative" => 0},  
               { "time" => "2017-03-21T15:20:00Z", "derivative" => 0}
             ]
}]

1 个答案:

答案 0 :(得分:5)

如果您只是想知道阵列中的一个哈希是否符合条件

arr.first['values'].any? { |hash| hash['derivative'] >= 100 }