Vérifier si la valeur existe dans le tableau en Ruby
-
Utiliser la méthode
Array#include?
pour vérifier l’existence d’une valeur dans un tableau Ruby -
Utiliser la méthode
Array#any?
pour vérifier si une valeur existe dans un tableau Ruby -
Utilisez la méthode
Array#index
pour vérifier si la valeur existe dans le tableau Ruby
En Ruby, un tableau est un type de données commun. Il contient des éléments de différents types de données, notamment des nombres, des chaînes, des booléens et même un autre tableau.
Nous pouvons avoir besoin de vérifier si une valeur existe dans un tableau donné dans certaines circonstances. Cet article explique comment procéder à l’aide des méthodes intégrées du tableau.
Utiliser la méthode Array#include?
pour vérifier l’existence d’une valeur dans un tableau Ruby
Array#include?
semble être le moyen le plus simple de vérifier si une valeur réside dans un tableau.
Si un élément est dans le tableau, Array#include?
renvoie true
, sinon false
.
print(['ruby', 'sapphire', 'amber'].include?('ruby'))
print("\n")
print(['ruby', 'sapphire', 'amber'].include?('moonstone'))
Production :
true
false
Utiliser la méthode Array#any?
pour vérifier si une valeur existe dans un tableau Ruby
On pourrait aussi utiliser Array#any?
au lieu de Array#include?
pour voir si un tableau contient une valeur. Parce que Array#any?
accepte un bloc, il est idéal pour une logique de vérification complexe.
Il renvoie true
si le bloc renvoie une valeur autre que false
ou nil
.
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'moonstone' })
print("\n")
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'ruby' })
Production :
false
true
Le code ci-dessous utilisera any?
pour voir si le tableau contient des gemmes d’une taille supérieure à quatre.
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem.size > 4 })
Production :
true
Utilisez la méthode Array#index
pour vérifier si la valeur existe dans le tableau Ruby
Il prend soit une seule valeur, comme include?
fait, ou un bloc.
Array#index
renvoie l’index de la valeur correspondante, sinon renvoie nil
, contrairement à include?
et any?
qui renvoient un booléen.
print(['ruby', 'sapphire', 'amber'].index { |gem| gem == 'ruby' })
print("\n")
print(['ruby', 'sapphire', 'amber'].index { |gem| gem.size > 10 })
Production :
0
#returns nil