У меня есть массив хешей, @fathers.
a_father = { "father" => "Bob", "age" => 40 }
@fathers << a_father
a_father = { "father" => "David", "age" => 32 }
@fathers << a_father
a_father = { "father" => "Batman", "age" => 50 }
@fathers << a_father
Как я могу искать этот массив и возвратить массив хешей, для которых блок возвращает true?
Например:
@fathers.some_method("age" > 35) #=> array containing the hashes of bob and batman
Спасибо.
Вы ищете Enumerable#select (также называемый find_all
):
@fathers.select {|father| father["age"] > 35 }
# => [ { "age" => 40, "father" => "Bob" },
# { "age" => 50, "father" => "Batman" } ]
Согласно документации, он "возвращает массив, содержащий все элементы [enumerable, в данном случае @fathers
], для которых block не является false."