Определите, существует ли значение в массиве хэшей У меня есть следующее: array_of_hashes = [{:a=>10, :b=>20}, {:a=>11, :b=>21}, {:a=>13, :b=>23}] Как мне найти, если :a=>11 существует в array_of_hashes array_of_hashes.include?, похоже, не работает Ответ 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]
Ответ 2 Вы запросили логический результат в OQ, но если вы действительно хотите, чтобы сам хэш-элемент выполнял: array_of_hashes.detect { |h| h[:a] == 11 } Если вы хотите, чтобы результат был очень быстрым, вы могли сгруппировать исходный объект, а затем получить результат с помощью одного поиска хэша: t = array_of_hashes.group_by { |x| x[:a] } t[11]