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}"
endCela produit :
0: apple
1: banana
2: cherryRemarquez 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}"
endEn 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.
Défi
FacileLisez 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: dateSi l'entrée est red,green,blue, la sortie doit être :
Item 1: red
Item 2: green
Item 3: blueSi 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: fridaySi l'entrée est solo, la sortie doit être :
Item 1: soloAide-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}"
endSortie :
0: apple
1: banana
2: cherryLe 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}"
endEssayez 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"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
4Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateurs logiques, partie 47Calculateur de partage de facture
Message de bienvenueSaisie de l'utilisateur10FizzBuzz avec une variante
Présentation du jeuLa méthode FizzBuzz2Variables et types de données
Nombres et variablesType de données StringType de données BooleanType de données SymbolVérification des types de donnéesConventions de nommageRécapitulatif - Création de variables5Prise de décision
Instruction IfIf - ElseRécapitulatif - Calculatrice simpleIf - Else imbriquésInstruction Unless8Boucles
Boucle For avec des intervallesBoucle WhileBreakNextRécapitulatif - FactorielleBoucle TimesBoucle UntilBoucles imbriquéesRécapitulatif - Entrée dynamique3Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesRécapitulatif - Calculs simplesOpérateurs de comparaison6Entrées/Sorties de base
Sortie avec putsSortie avec print et pSortie avec des variablesEntrée avec getsLa méthode chompConversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Méthodes
Définir une méthodeParamètres de méthodeValeurs de retourRécapitulatif - Méthode SigmaRécapitulatif - Méthode de validationValeurs de paramètres par défaut12Itérer sur les collections
L'itérateur EachEach avec indexItérer sur les chaînes de caractèresMap et Collect