¿Cómo hacer una array personalizada de hashes en Ruby?

Prerrequisitos: hashes y arreglos en Ruby

Las arrays y hashes son estructuras de datos que le permiten almacenar múltiples valores a la vez. En este artículo, exploraremos su sintaxis, cómo combinar funcionalidades de ambos para crear una array de hashes, recuperar valores y recorrerlos.
Una array es una colección de elementos diferentes o similares, almacenados en ubicaciones de memoria contiguas. La idea es almacenar varios elementos del mismo tipo juntos, a los que se puede hacer referencia por un nombre común.
Así es como se declara una array en Ruby:

arr = ["Geeks", 55, 61, "GFG"]

Hash es una estructura de datos que mantiene un conjunto de objetos que se denominan claves y cada clave le asocia un valor. En palabras simples, un hash es una colección de claves únicas y sus valores.
Así es como se declara una array en Ruby:

hash_variable = {
                 "key1" => "Geeks", 
                 "key2" => "for", 
                 "key2" => "Geeks"
                }

Crear una array de hashes

Puede crear una array de hashes simplemente inicializando la array con hashes o usando array.push() para insertar hashes dentro de la array.
Un método simple para crear una array de hashes:

hash_arr = [ {"height" => '5 ft', "weight" => '170 lbs',
              "hair" => 'white'},
             {:pet => 'Cat', :nest => 'Bird'} ]

O usando array.push() para insertar hashes dentro de la array:

hash_arr = []
hash1 = {"height" => '5 ft', "weight" => '170 lbs', "hair" => 'White'}
hash2 = {:pet => 'Frog', :nest => 'Bird'}

hash_arr.push(hash1)
hash_arr.push(hash2)

Nota: tanto «Key» como :Key actúan como una clave en un hash en Ruby.

Acceder a una array de hashes

Puede acceder a los elementos de una array de hash mediante la indexación basada en arrays para acceder a un hash en particular y las claves para acceder a los valores presentes en ese hash.

hash_arr = [ {"height" => '5 ft', "weight" => '170 lbs',
              "hair" => 'white'},
             {:pet => 'Cat', :nest => 'Bird'} ]

hash_arr[0]["height"]    #=> '5 ft'
hash_arr[1][:nest]       #=> 'Bird'

Ejemplo:

# Ruby program to illustrate how to access 
# the element of the array of hashes
  
# Creating an array of hashes
hash_arr = [ {"name" => 'GeeksforGeeks', "branch" => 'CSE'},
             {:language1 => 'Ruby', :language2 => 'Python'} ]
  
# Accessing the elements of hash_arr
res1 = hash_arr[0]["branch"]       
res2 = hash_arr[1][:language1]          
  
# Display the results
puts res1
puts res2

Producción:

CSE
Ruby

Iterar sobre la array de hashes

Puede usar declaraciones simples .each do para iterar sobre la array de hash:
Ejemplo:

# Ruby program to illustrate how to access 
# the element of the array of hashes
  
# Creating an array of hashes
hash_arr = [ {name: 'Amu', occupation: 'Web developer', hobbies: 'Painting'},
             {name: 'Sumit', occupation: 'HR', hobbies: 'Swimming'} ]
   
 # Iterate over the array of hashes
 # Using .each do statement
hash_arr.each do |hash|
  puts 'Values in this Hash'
  hash.each do |key,value|
    puts (key.to_s + ': ' + value.to_s)
  end
end

Producción:

Values in this Hash
name: Amu
occupation: Web developer
hobbies: Painting
Values in this Hash
name: Sumit
occupation: HR
hobbies: Swimming   

Nota: .to_s se usa para convertir todos los valores en strings para que puedan imprimirse fácilmente.

Publicación traducida automáticamente

Artículo escrito por sid779 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *