Arreglos con Each
- És un iterador en Ruby
- Serveix per a iterar llistas i hash
1. Iterar
# Cicle each
calificaciones = %w[10 7 8 9 5 8 10]
puts calificaciones
Output
10
7
8
9
5
8
10
2. Per a imprimir en una línia print
# Cicle each
calificaciones = %w[10 7 8 9 5 8 10]
print calificaciones
Output
["10", "7", "8", "9", "5", "8", "10"]
3. Traure la mija aritmètica
: Incorporamos el concepto de bloque
:
# Cicle each
calificaciones = %w[10 7 8 9 5 8 10]
suma = 0
calificaciones.each do |calificacion|
puts "Nota: #{calificacion}"
end
El bloque es lo que va entre do
y end
.
|calificacion|
hace referencia a cada parámetro uno a uno.
puts
imprimirá cada valor que contenta la lista o llista |calificacion|
.
Output
Nota: 10
Nota: 7
Nota: 8
Nota: 9
Nota: 5
Nota: 8
Nota: 10
4. Mètode each_with_index
Per a saber la posició el la què ens trobem podem utilizar el mètode each_with_index
.
# Cicle each
calificaciones = %w[10 7 8 9 5 8 10]
suma = 0
calificaciones.each_with_index do |calificacion,posicion|
puts "En la psocición #{posicion} tenemos la nota: #{calificacion}"
end
Output
En la psocición 0 tenemos la nota: 10
En la psocición 1 tenemos la nota: 7
En la psocición 2 tenemos la nota: 8
En la psocición 3 tenemos la nota: 9
En la psocición 4 tenemos la nota: 5
En la psocición 5 tenemos la nota: 8
En la psocición 6 tenemos la nota: 10
5. Ara traurem la mija
# Cicle each
calificaciones = %w[10 7 8 9 5 8 10]
suma = 0
calificaciones.each_with_index do |calificacion,posicion|
suma += calificacion.to_i # to._i Convertirm cadenes a sensers
end
puts "El promedi de les calificacions és #{suma / calificaciones.length}" # Amb length Obtenim el nombre d'elements
Output
El promedi de les calificacions és 8
6. Per obtenir decimals cal convertir-ho a decimal
Per fer-ho cal modificar suma.to_f
per tal que una de les dues variables siga decimal.
# Cicle each
calificaciones = %w[10 7 8 9 5 8 10]
suma = 0
calificaciones.each_with_index do |calificacion,posicion|
suma += calificacion.to_i # to._i Convertirm cadenes a sensers
end
puts "El promedi de les calificacions és #{suma.to_f / calificaciones.length}" # Amb length Obtenim el nombre d'elements
Output
El promedi de les calificacions és 8.142857142857142
7. En altres llenguatges
En altres llenguatges, per iterar s’utilitza for
, en Ruby també es pot utilitzar, pero quasi sempre s’utilitza each
per iterar.