Looking for ruby Keywords? Try Ask4Keywords

Ruby Language Iteración con índice


Ejemplo

A veces desea saber la posición ( índice ) del elemento actual mientras se repite en un enumerador. Para tal fin, Ruby proporciona el método with_index . Se puede aplicar a todos los enumeradores. Básicamente, al agregar with_index a una enumeración, puede enumerar esa enumeración. El índice se pasa a un bloque como segundo argumento.

[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 tiene un argumento opcional: el primer índice es 0 por defecto:

[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]

Hay un método específico each_with_index . La única diferencia entre él y cada uno. Con each.with_index es que no puede pasarle un argumento a eso, por lo que el primer índice es 0 todo el tiempo.

[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]