En ciertos casos, la necesidad de convertir una matriz a un hash y viceversa aparece. En esta guía, discutiremos cómo puede convertir una matriz a un hash en Ruby.
#1 - Uso de cada método
Supongamos que tiene una matriz que desea convertir a una cadena donde la clave del hash es el elemento de matriz, y el valor del hash es el elemento de la matriz + 10.
Para hacer esto, podemos usar cada método para iterar cada elemento en la matriz y convertirlo en una cadena.
var = [1,2,3,4,5,6,7,8,9,10]El ejemplo anterior convertirá cada elemento en la matriz a una clave hash emparejada con su valor.
El diccionario resultante es como se muestra:
1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15, 6 => 16, 7 => 17, 8 => 18, 9 => 19, 10 => 20#2 - usando cada_with_object
Ruby proporciona otro método llamado cada_with_object. El método ejecuta cada método después de crear un nuevo objeto que pueda formar desde los elementos de la matriz.
Ejemplo:
var = [1,2,3,4,5,6,7,8,9,10]La funcionalidad del ejemplo anterior es similar a usar cada método.
El valor hash resultante es como:
1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15, 6 => 16, 7 => 17, 8 => 18, 9 => 19, 10 => 20Para ver cómo la función itera sobre los elementos en la matriz y los convierte en un hash, puede agregar un elemento de colocación dentro del bloque como:
var = [1,2,3,4,5,6,7,8,9,10]Si ejecuta el código anterior, debe obtener una visión jerárquica del proceso de creación hash.
#3 - Uso del método To_h
El método TO_H se define en la clase de matriz. Funciona para convertir una matriz a un hash en forma de pares de valores clave.
Ejemplo:
var = [[1,2], [3,4], [5,6]]El método convierte cada matriz anidada en pares de valor clave.
1 => 2, 3 => 4, 5 => 6El método también acepta un bloque. Si se especifica algún bloque, el método devuelve el resultado del bloque en cada elemento de matriz.
Por ejemplo, el siguiente es un método que muestra si el valor es verdadero o falso.
var = [1,2]El diccionario resultante:
false => 1, true => 2Para concluir
En esta guía, discutimos cómo convertir una matriz a un hash utilizando varios métodos.