Menu
Coddy logo textTech

Select et Reject

Fait partie de la section Logique et Flux du Journey Ruby de Coddy. Leçon 21 sur 56.

La méthode select renvoie un nouveau tableau contenant uniquement les éléments pour lesquels le bloc renvoie une valeur véridique. C'est la manière dont Ruby écrit « filtrer ».

numbers = [1, 2, 3, 4, 5, 6]
evens = numbers.select { |n| n.even? }
puts evens.inspect   # [2, 4, 6]

reject est l’opposé : il conserve tout pour lequel le bloc renvoie false :

odds = numbers.reject { |n| n.even? }
puts odds.inspect    # [1, 3, 5]

Les deux renvoient un nouveau tableau ; l’original reste inchangé.

Le bloc est simplement un prédicat : tout ce qui s’évalue en vrai ou faux convient :

words = ["hi", "hello", "hey", "yo"]
long  = words.select { |w| w.length >= 3 }
puts long.inspect    # ["hello", "hey"]
challenge icon

Défi

Débutant

Lisez une liste d’entiers séparés par des virgules. Affichez deux lignes :

  1. Les nombres supérieurs à 10 (utilisez select), reliés par ,
  2. Les nombres non divisibles par 3 (utilisez reject), reliés par ,

Pour l’entrée 3,7,12,15,20, la sortie est :

12, 15, 20
7, 20

Essayez vous-même

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: ligne 1, numbers > 10, joints avec ", "
# TODO: ligne 2, numbers NON divisibles par 3, joints avec ", "
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux

Entraînez-vous par vous-même : Compilateur Ruby en ligne