2010-12-11 7 views
1

Je veux actuellement itérer sur un tableau d'objets (2 propriétés: id & nom) et vérifier si le tableau contient un identifiant spécifiquetableau rubis contient un identifiant

Comment puis-je faire cela?

+0

double possible de [Déterminer si une valeur existe dans un tableau de hashes] (http://stackoverflow.com/questions/1514883/determine-if-a-value-exists-in-an-array-of-hashes) –

Répondre

7

Enumerable#detect est ok, mais je pense que Enumerable#any? (qui renvoie une valeur booléenne), est strictement ce que vous avez demandé:

xs = [{:id => 1, :name => 'a'}, {:id => 2, :name => 'b'}] 
puts xs.any? {|x| x[:id] == 1} # true 
puts xs.any? {|x| x[:id] == 5} # false 
3

Essayez detect

a = [{:id => 1, :name => 'a'}, {:id => 2, :name => 'b'}] 
puts a.detect {|x| x[:id] == 1} 
Questions connexes