Проверка наличия в рубиновом хеше значения больше x

66
9

У меня есть следующий объект, возвращаемый из запроса 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}
]
}]

спросил(а) 2021-01-19T19:10:27+03:00 9 месяцев, 1 неделя назад
1
Решение
103

Если вы просто хотите знать, соответствует ли один из хэшей в вашем массиве условие

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

ответил(а) 2021-01-19T19:10:27+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема