149 votes

Trouver une valeur dans un tableau

En Ruby, comment puis-je trouver une valeur dans un tableau ?

0 votes

Désolé pour ce type de question, je suis nouveau ici, et j'apprends à utiliser cet outil, je vais essayer de trouver les réponses avant de poster ici.

118 votes

À tous ceux qui se plaignent de ce genre de questions : lisez la FAQ : Aucune question n'est trop banale ou trop "novice". Si vous n'aimez pas la question, n'y répondez pas et laissez quelqu'un d'autre le faire. Si la question a déjà été posée et répondue sur SO, alors bien sûr, marquez-la comme un doublon. Mais il n'y a aucune raison de réprimander les nouveaux arrivants parce qu'ils sont nouveaux.

126voto

Mark Westling Points 2940

Si vous essayez de déterminer si une certaine valeur existe dans un tableau, vous pouvez utiliser la fonction Array#include ?(valeur) :

a = [1,2,3,4,5]
a.include?(3)   # => true
a.include?(9)   # => false

Si vous voulez dire autre chose, vérifiez le API Ruby Array

2 votes

J'utiliserais Array#index, mais consulter l'API Ruby Array est une excellente astuce.

23voto

Ewan Todd Points 5201

Comme ça ?

a = [ "a", "b", "c", "d", "e" ]
a[2] +  a[0] + a[1]    #=> "cab"
a[6]                   #=> nil
a[1, 2]                #=> [ "b", "c" ]
a[1..3]                #=> [ "b", "c", "d" ]
a[4..7]                #=> [ "e" ]
a[6..10]               #=> nil
a[-3, 3]               #=> [ "c", "d", "e" ]
# special cases
a[5]                   #=> nil
a[5, 1]                #=> []
a[5..10]               #=> []

ou comme ça ?

a = [ "a", "b", "c" ]
a.index("b")   #=> 1
a.index("z")   #=> nil

Voir le manuel .

23voto

andyp Points 3286

Vous pouvez utiliser Array.select o Array.index pour le faire.

17voto

Wim Hollebrandse Points 8628

Utilisez :

myarray.index "valuetoFind"

Cela vous retournera l'index de l'élément que vous voulez ou nil si votre tableau ne contient pas la valeur.

8voto

mydoghasworms Points 6190

Je sais que cette question a déjà reçu une réponse, mais je suis venu ici pour chercher un moyen de filtrer les éléments d'un tableau en fonction de certains critères. Voici donc l'exemple de ma solution : en utilisant select Je trouve toutes les constantes de la classe qui commencent par "RUBY_".

Class.constants.select {|c| c.to_s =~ /^RUBY_/ }

UPDATE : Entre-temps, j'ai découvert que Array#grep fonctionne beaucoup mieux. Pour l'exemple ci-dessus,

Class.constants.grep /^RUBY_/

a fait l'affaire.

1 votes

Entre-temps, j'ai découvert que Array#grep fonctionne beaucoup mieux. Même pour l'exemple ci-dessus, Class.constants.grep /^RUBY_/ a fait l'affaire.

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