Как я ищу в массиве хешей значениями хэш-функции в рубине?

У меня есть массив хешей, @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

Спасибо.

227
задан doctororange 11 February 2010 в 04:10
поделиться

1 ответ

Вы ищете Enumerable#select (также называемый find_all):

@fathers.select {|father| father["age"] > 35 }
# => [ { "age" => 40, "father" => "Bob" },
#      { "age" => 50, "father" => "Batman" } ]

Согласно документации, он "возвращает массив, содержащий все элементы [enumerable, в данном случае @fathers], для которых block не является false."

401
ответ дан 23 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: