Iterar a través de una matriz en Ruby

Iterar a través de una matriz en Ruby
Ruby es un poderoso lenguaje de programación que parece adoptar el concepto de fácil de aprender y usar mucho. Cuando se trata de realizar tareas casi fundamentales en Ruby, es probable que haya un método incorporado para ello.

Este tutorial discutirá varias formas en que puede iterar sobre los elementos en una matriz de rubí.

Creando una matriz

En Ruby, podemos crear una matriz agregando una lista de valores separados por comas dentro de un par de soportes cuadrados. Cada elemento de la matriz se conoce como elemento y puede ser de cualquier tipo de ruby.

myArray = [1,2,3.9, "Hola", "Mundo", [], ]

El ejemplo anterior muestra una matriz simple que comprende varios tipos de elementos, como enteros, carrozas, cuerdas, matrices, hashes y más.

En algunos casos, es posible que tenga una matriz compuesta solo por tipo de cadena. En ese caso, puede crear y encerrar los valores en %w

Ejemplo:

Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch

Si usamos la sintaxis anterior para crear una matriz, Ruby separará los valores por espacios en blanco y creará elementos individuales, como se muestra a continuación:

imprimir bases de datos
["MySQL", "PostgreSQL", "Redis", "Memcached,", "MongoDB,", "Elasticsearch"]

Iterando sobre una matriz

Iterando sobre una matriz y trabajar con elementos individuales es un concepto de programación fundamental. Ruby nos proporciona algunos métodos para realizar una tarea de este tipo.

Usando cada método

El ruby ​​enumerable#Cada método es la forma más simplista y popular de iterar elementos individuales en una matriz.

Acepta dos argumentos: el primero es una lista enumerable, y el segundo es un bloque. Toma cada elemento en la lista proporcionada y ejecuta el bloque, tomando el elemento actual como parámetro.

Aquí hay un ejemplo:

Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch
bases de datos.cada do | i |
pone yo
fin

El ejemplo simple anterior ilustra cómo funciona el método. Toma cada elemento en la matriz de bases de datos y ejecuta un bloque con el elemento actual. En nuestro ejemplo, el bloque es un método simple de poner.

La salida resultante es cada elemento en la matriz como:

$ Ruby Iterator.RB
Mysql,
… ,
Mongodb,
Elasticsearch

Usando cada método cada_with_index

En algunos casos, es posible que deseemos imprimir el elemento y su índice de posición en la matriz. Para hacer esto, podemos usar el método cada_with_index

Funciona como cada método pero devuelve ambos elementos y sus posiciones de índice como:

Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch
bases de datos.cada_with_index do | elemento, índice |
pone " #index => #elemento"
fin

En el ejemplo anterior, Ruby devolverá cada elemento en la matriz asignada a su índice como se muestra:

0 => mysql,
1 => PostgreSQL,
… ,
5 => Elasticsearch

Usando un bucle para

Al igual que en la mayoría de los lenguajes de programación, también puede iterar sobre los elementos en una matriz utilizando un bucle para.

Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch
para elemento en bases de datos
Punta Elemento
fin

El ejemplo anterior funciona como cada método y devuelve elementos individuales en la matriz.

Usando seleccionar

Ruby también tiene otro método para iterar sobre los elementos en una matriz: el método de selección. El método Seleccionar funciona como se muestra en el ejemplo a continuación

Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch
bases de datos.seleccionar hacer | i |
pone yo
fin

El método de selección es útil cuando desea un subconjunto que cumpla con criterios específicos. Por ejemplo, seleccione solo valores pares en una matriz como se muestra:

Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
numeros.seleccionar hacer | i |
i.incluso?
fin

El ejemplo anterior debe devolver solo un subconjunto de la matriz NUMS donde el elemento es par.

=> [20, 28, 2, 100, 34, 22]

Uso de mapa

El método del mapa es otra forma de iterar sobre los elementos en una matriz. La funcionalidad funciona de manera similar a cualquier iterador de matriz en Ruby. Sin embargo, es principalmente útil cuando quieres transformar la matriz.

Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
numeros.mapa do | i |
i * 3
fin

El ejemplo anterior devolverá un nuevo objeto con los elementos en la matriz multiplicada por 3.

Si desea afectar la matriz original, puede usar el mapa! método.

Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
numeros.mapa! hacer | i |
i * 3
fin
impresión
[3, 60, 69, 84, 6, 300, 102, 159, 66, 63, 33]

En el ejemplo anterior, el mapa! El método altera la matriz de origen y crea una matriz con las modificaciones especificadas.

Conclusión

Esta guía discutió cómo iterar sobre los elementos en una matriz usando bucles y otros métodos de rubí incorporados.