Vérifier si un tableau contient un objet

Créé le 13 Dec 2022 - Mis à jour le 04 Jul 2023 - Créé par Fabien Berthoux - ruby-on-railsruby

La plupart des langages de programmation ont des méthodes pour vérifier si un tableau contient un objet. En Ruby, cela peut être fait avec la méthode .include?. Il prend en compte un élément et retourne true si cet élément est présent dans le tableau et false s'il n'y est pas.

Par exemple, pour vérifier si le tableau my_array contient l'objet my_object, on peut utiliser la méthode .include? comme suit :

my_array.include?(my_object)

Quelle est la limite de méthode .include? ?

La méthode .include? vérifie uniquement si un objet est présent dans un tableau. Il ne peut pas être utilisé pour vérifier si un objet est absent d'un tableau. Pour cela, vous pouvez utiliser la méthode .exclude?.

my_array.exclude?(my_object)

Comment vérifier si un objet est présent à plusieurs endroits dans un tableau ?

Pour vérifier si un objet est présent à plusieurs endroits dans un tableau, vous pouvez utiliser la méthode .count. Elle prend un objet en compte et retourne le nombre de fois où cet objet est présent dans le tableau.

my_array.count(my_object)

Comment vérifier si un tableau est vide ?

Pour vérifier si un tableau est vide, vous pouvez utiliser la méthode .empty?. Elle prend un tableau en compte et retourne true si le tableau est vide et false s'il contient des éléments.

my_array.empty?

Comment vérifier si un tableau contient uniquement des objets d'un certain type ?

Pour vérifier si un tableau contient uniquement des objets d'un certain type, vous pouvez utiliser la méthode .all?. Elle prend un objet et un bloc en compte et retourne true si tous les objets du tableau sont de ce type et false sinon.

my_array.all? { |obj| obj.is_a?(MyObjectType) }

Comment vérifier si un tableau contient au moins un objet d'un certain type ?

Pour vérifier si un tableau contient au moins un objet d'un certain type, vous pouvez utiliser la méthode .any?. Elle prend un objet et un bloc en compte et retourne true si au moins un objet du tableau est de ce type et false sinon.

my_array.any? { |obj| obj.is_a?(MyObjectType) }