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.

8. Font

Código Facilito