Menu
Coddy logo textTech

Each avec index

Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 66 sur 88.

Parfois, vous avez besoin de connaître non seulement l'élément avec lequel vous travaillez, mais aussi sa position dans le tableau. La méthode each_with_index de Ruby vous donne à la fois l'élément et son index en une seule itération.

Voici comment cela fonctionne :

fruits = ["apple", "banana", "cherry"]

fruits.each_with_index do |fruit, index|
  puts "#{index}: #{fruit}"
end

Cela produit :

0: apple
1: banana
2: cherry

Remarquez que le bloc prend désormais deux variables entre les barres verticales (pipes) : l'élément vient en premier, suivi de l'index. L'index commence à 0, tout comme lors de l'accès direct aux éléments d'un tableau.

Ceci est particulièrement utile lorsque vous devez afficher des listes numérotées ou suivre des positions :

tasks = ["Buy groceries", "Clean room", "Call mom"]

tasks.each_with_index do |task, i|
  puts "Task #{i + 1}: #{task}"
end

En ajoutant 1 à l'index, nous créons une liste numérotée conviviale commençant par 1 au lieu de 0. La méthode each_with_index élimine le besoin de suivre manuellement une variable de compteur, rendant votre code plus propre et moins sujet aux erreurs.

challenge icon

Défi

Facile

Lisez une seule ligne d'entrée contenant des mots séparés par des virgules (par exemple, apple,banana,cherry,date).

Divisez l'entrée en un tableau de chaînes de caractères, puis utilisez each_with_index pour afficher chaque élément sous forme de liste numérotée commençant par 1 (et non 0).

Chaque ligne doit suivre ce format : Item 1: apple

Par exemple, si l'entrée est apple,banana,cherry,date, la sortie doit être :

Item 1: apple
Item 2: banana
Item 3: cherry
Item 4: date

Si l'entrée est red,green,blue, la sortie doit être :

Item 1: red
Item 2: green
Item 3: blue

Si l'entrée est monday,tuesday,wednesday,thursday,friday, la sortie doit être :

Item 1: monday
Item 2: tuesday
Item 3: wednesday
Item 4: thursday
Item 5: friday

Si l'entrée est solo, la sortie doit être :

Item 1: solo

Aide-mémoire

La méthode each_with_index vous permet d'itérer sur un tableau tout en accédant à la fois à l'élément et à son index :

fruits = ["apple", "banana", "cherry"]

fruits.each_with_index do |fruit, index|
  puts "#{index}: #{fruit}"
end

Sortie :

0: apple
1: banana
2: cherry

Le bloc prend deux variables : l'élément en premier, puis l'index. L'index commence à 0.

Pour créer des listes numérotées conviviales commençant à 1, ajoutez 1 à l'index :

tasks = ["Buy groceries", "Clean room", "Call mom"]

tasks.each_with_index do |task, i|
  puts "Task #{i + 1}: #{task}"
end

Essayez vous-même

# Lire l'entrée séparée par des virgules
input = gets.chomp

# Diviser l'entrée en un tableau
items = input.split(",")

# TODO: Utiliser each_with_index pour afficher chaque élément sous forme de liste numérotée
# Rappel : l'index commence à 0, mais vous devez l'afficher en commençant par 1
# Format : "Item 1: apple"
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 Fondamentaux