Подтвердить что ты не робот

Определите, существует ли значение в массиве хэшей

У меня есть следующее:

array_of_hashes = [{:a=>10, :b=>20}, {:a=>11, :b=>21}, {:a=>13, :b=>23}]

Как мне найти, если :a=>11 существует в array_of_hashes

array_of_hashes.include?, похоже, не работает

4b9b3361

Ответ 1

array_of_hashes.any? {|h| h[:a] == 11}

Ответ 2

Вы запросили логический результат в OQ, но если вы действительно хотите, чтобы сам хэш-элемент выполнял:

array_of_hashes.detect {  |h| h[:a] == 11 }

Если вы хотите, чтобы результат был очень быстрым, вы могли сгруппировать исходный объект, а затем получить результат с помощью одного поиска хэша:

t = array_of_hashes.group_by { |x| x[:a] }
t[11]