Trouver une valeur dans un tableau Ruby
La meilleure façon de trouver une valeur dans un tableau Ruby est d’utiliser la méthode find
ou detect
; les deux sont des alias et peuvent être utilisés de manière interchangeable. Ils acceptent un argument de bloc et renvoient la première valeur qui satisfait une condition donnée spécifiée dans le bloc.
L’exemple ci-dessous recherche le nombre impair dans un tableau de 2
à 4
.
Exemple de code :
numbers = [2, 3, 4]
odd_number = numbers.find { |n| n.odd? }
puts odd_number
Production :
3
Exemple de code :
numbers = [2, 3, 4]
odd_number = numbers.detect { |n| n.odd? }
puts odd_number
Production :
3
Une autre façon de trouver une valeur dans un tableau est d’utiliser la méthode select
.
Bien qu’il ne soit pas efficace, il convient de le mentionner. C’est inefficace parce qu’il parcourt tout le tableau que nous recherchons, que la valeur que nous recherchions soit au début ou à la fin du tableau, contrairement aux méthodes find
et detect
qui arrêtent d’itérer dès qu’elles trouvent la valeur.
Il convient également de mentionner que la méthode select
est conçue pour rechercher plusieurs valeurs et les renvoyer sous forme de tableau. En supposant que nous nous attendions à plusieurs nombres impairs dans l’exemple ci-dessus, la méthode select
aurait été une méthode préférée à utiliser.
Exemple de code :
numbers = [2, 3, 4, 5]
odd_numbers = numbers.select { |n| n.odd? }
puts odd_numbers
Production :
[3, 5]