277 votes

Comment rechercher dans un tableau de hachages des valeurs de hachage en ruby?

J'ai un tableau de hachages, @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 
 

Comment puis-je rechercher ce tableau et retourner un tableau de hachages pour lequel un bloc renvoie true?

Par exemple:

 @fathers.some_method("age" > 35) #=> array containing the hashes of bob and batman
 

Merci.

484voto

Jordan Points 26741

Vous recherchez Enumerable # select (également appelé find_all ):

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

Selon la documentation, il "renvoie un tableau contenant tous les éléments de [l'énumérable, dans ce cas @fathers ] pour quel bloc n'est pas faux".

223voto

Naveed Points 4948

cela retournera premier match

 @fathers.detect {|f| f["age"] > 35 }
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X