2017-03-21 3 views
1

Ich habe das folgende Objekt aus einer InfluxDB-Abfrage zurückgegeben, und ich möchte in der Lage sein zu überprüfen, ob einer der Derivate gleich oder größer als sagen 100 sind, wenn ja dann Sachen.Überprüfen, ob ein Ruby-Hash einen Wert größer als x

Ich habe versucht, wählen, um dieses Feld zu überprüfen, aber ich verstehe wirklich nicht wirklich, wie man mit einer Datenstruktur wie folgt arbeitet. Wie würde ich jeden abgeleiteten Wert in meinem zurückgegebenen Objekt durchlaufen?

Ich sehe nicht wirklich ein Beispiel, das meinem Fall in der aufzählbaren Dokumentation ähnlich ist. 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} 
      ] 
}] 

Antwort

4

Wenn Sie wollen einfach nur wissen, ob eines der Hashes in Ihrem Array die Bedingung erfüllen

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