Iterar a través de un array Ruby

Nurudeen Ibrahim 30 enero 2023
  1. Iterar a través de un array Ruby usando el método each
  2. Iterar a través de un array de Ruby usando el bucle for
  3. Iterar a través de un array Ruby usando el método reverse_each
  4. Iterar a través de un array Ruby usando el método each_with_index
  5. Iterar a través de un array Ruby usando el método map
  6. Iterar a través de un array Ruby usando el método select
  7. Iterar a través de un array Ruby usando el método reject
Iterar a través de un array Ruby

La clase array en Ruby incluye el mixin Enumerable y, como resultado, tiene varios métodos transversales. En este tutorial, veremos estos métodos enumerables y otras formas de iterar a través de un array en Ruby.

Iterar a través de un array Ruby usando el método each

Este es el iterador más utilizado en Ruby.

Códigos de ejemplo:

fruits = ['Orange', 'Apple', 'Banana']

fruits.each do |fruit|
  puts fruit
end

Producción :

Orange
Apple
Banana

Iterar a través de un array de Ruby usando el bucle for

Este método puede tener un efecto secundario no deseado y, como resultado, no se recomienda.

Códigos de ejemplo:

fruits = ['Orange', 'Apple', 'Banana']

for fruit in fruits
  puts fruit
end

Producción :

Orange
Apple
Banana

Si una variable fruit se hubiera definido anteriormente en el ejemplo anterior, el bucle for la sobrescribiría con el último elemento del array fruits. Es un problema de alcance, y el comportamiento se ilustra a continuación.

Códigos de ejemplo:

fruit = 'Mango'
fruits = ['Orange', 'Apple', 'Banana']

for fruit in fruits
  puts fruit
end

puts fruit

Producción :

Orange
Apple
Banana
Banana

Iterar a través de un array Ruby usando el método reverse_each

Como su nombre lo indica, esto funciona como el método each pero en orden inverso.

Códigos de ejemplo:

fruits = ['Orange', 'Apple', 'Banana']

fruits.reverse_each do |fruit|
  puts fruit
end

Producción :

Banana
Apple
Orange

Iterar a través de un array Ruby usando el método each_with_index

Este método es útil en una situación en la que necesita obtener cada elemento de un array y el índice.

Códigos de ejemplo:

fruits = ['Orange', 'Apple', 'Banana']
fruits.each_with_index do |fruit|
  puts "#{index}. #{fruit}"
end

Producción :

0. Orange
1. Apple
2. Banana

Aunque los ejemplos anteriores demuestran la forma más sencilla de iterar a través de un array, los métodos suelen ser útiles cuando necesita atravesar un array y realizar algunas operaciones en cada uno de sus elementos, por ejemplo, iterar a través de una lista de direcciones de correo electrónico y enviando un mensaje a cada uno de ellos.

Los métodos restantes que mencionaremos en este tutorial son un poco diferentes de los mencionados anteriormente en el sentido de que transforman un array en otra.

Iterar a través de un array Ruby usando el método map

Es útil si desea modificar cada elemento de un array y tenerlos como un nuevo array.

Códigos de ejemplo:

numbers = [2, 4, 6]

doubles = numbers.map do |n|
  n * 2
end

puts doubles

Producción :

[4, 8, 12]

Ten en cuenta que también hay un método collect, un alias de map, y ambos se comportan de la misma manera.

Iterar a través de un array Ruby usando el método select

Como su nombre lo indica, el método select le permite elegir solo elementos específicos de un array que cumplen una condición lógica específica. También produce un nuevo array.

Códigos de ejemplo:

numbers = [2, 3, 4, 5, 6, 7, 8, 9]

perfect_squares = numbers.select do |n|
  Math.sqrt(n) % 1 == 0
end

puts perfect_squares

Producción :

[4, 9]

Tenga en cuenta que también hay un método find_all que es un alias para select, y ambos se comportan de la misma manera.

Iterar a través de un array Ruby usando el método reject

El método reject es el opuesto a select, y es útil cuando necesitas rechazar algunos elementos específicos de un array y devolver los restantes como un nuevo array.

Códigos de ejemplo:

numbers = [-2, -1, 0, 1, 2, 3]

positive_integers = numbers.reject do |n|
  n < 1
end

puts positive_integers

Producción :

[1, 2, 3]

Artículo relacionado - Ruby Array