Ruby Language Itération avec index


Exemple

Parfois, vous voulez connaître la position ( index ) de l'élément en cours lors d'une itération sur un énumérateur. À cette fin, Ruby fournit la méthode with_index . Il peut être appliqué à tous les enquêteurs. Fondamentalement, en ajoutant with_index à une énumération, vous pouvez énumérer cette énumération. Index est transmis à un bloc comme deuxième argument.

[2,3,4].map.with_index { |e, i| puts "Element of array number #{i} => #{e}" }
#Element of array number 0 => 2
#Element of array number 1 => 3
#Element of array number 2 => 4
#=> [nil, nil, nil]

with_index a un argument optionnel - le premier index qui est 0 par défaut:

[2,3,4].map.with_index(1) { |e, i| puts "Element of array number #{i} => #{e}" }
#Element of array number 1 => 2
#Element of array number 2 => 3
#Element of array number 3 => 4
#=> [nil, nil, nil]

Il existe une méthode spécifique each_with_index . La seule différence entre cela et each.with_index est que vous ne pouvez pas passer un argument à cela, donc le premier index est 0 tout le temps.

[2,3,4].each_with_index { |e, i| puts "Element of array number #{i} => #{e}" }
#Element of array number 0 => 2
#Element of array number 1 => 3
#Element of array number 2 => 4
#=> [2, 3, 4]