Menu
Coddy logo textTech

Métodos de Hash

Parte de la sección Fundamentos del Journey de Ruby de Coddy — lección 76 de 88.

Ruby proporciona varios métodos integrados que te ayudan a inspeccionar y trabajar con hashes de manera más efectiva. Estos métodos te brindan acceso rápido a información sobre el contenido de tu hash.

El método keys devuelve un array de todas las claves en el hash:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person.keys  # Salida: name, age, city

De manera similar, el método values devuelve un arreglo de todos los valores:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person.values  # Salida: Alice, 25, Paris

Para comprobar si existe una clave específica, utiliza key? o su alias has_key?:

person = {"name" => "Alice", "age" => 25}

puts person.key?("name")     # Salida: true
puts person.key?("country")  # Salida: false

El método length te indica cuántos pares clave-valor contiene el hash:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person.length  # Salida: 3

Finalmente, empty? comprueba si el hash tiene algún par:

data = {}
puts data.empty?  # Salida: true
challenge icon

Desafío

Fácil

Lee dos líneas de entrada:

  1. Un hash representado como pares clave-valor separados por comas en el formato key:value (por ejemplo, name:Alice,age:25,city:Paris)
  2. Una clave para verificar su existencia (cadena de texto)

Analiza la primera entrada para crear un hash, luego utiliza los métodos de hash que aprendiste para mostrar la siguiente información, cada una en su propia línea:

  1. Imprime cada clave en el hash (una por línea)
  2. Imprime --- como separador
  3. Imprime cada valor en el hash (una por línea)
  4. Imprime --- como separador
  5. Imprime el número de pares clave-valor en el hash
  6. Imprime --- como separador
  7. Imprime true o false indicando si el hash está vacío
  8. Imprime --- como separador
  9. Imprime true o false indicando si la clave de la segunda entrada existe en el hash

Por ejemplo, si las entradas son name:Alice,age:25,city:Paris y age, la salida debería ser:

name
age
city
---
Alice
25
Paris
---
3
---
false
---
true

Si las entradas son product:Laptop,price:999 y stock, la salida debería ser:

product
price
---
Laptop
999
---
2
---
false
---
false

Si las entradas son status:active and status, la salida debería ser:

status
---
active
---
1
---
false
---
true

Hoja de referencia

Ruby proporciona métodos integrados para inspeccionar y trabajar con hashes:

El método keys devuelve un array de todas las claves:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys  # Salida: name, age, city

El método values devuelve un array de todos los valores:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values  # Salida: Alice, 25, Paris

El método key? (o su alias has_key?) comprueba si existe una clave específica:

person = {"name" => "Alice", "age" => 25}
puts person.key?("name")     # Salida: true
puts person.key?("country")  # Salida: false

El método length devuelve el número de pares clave-valor:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length  # Salida: 3

El método empty? comprueba si el hash tiene algún par:

data = {}
puts data.empty?  # Salida: true

Pruébalo tú mismo

# Leer entrada
input_string = gets.chomp
key_to_check = gets.chomp

# Analizar la cadena de entrada para crear un hash
hash = {}
input_string.split(',').each do |pair|
  key, value = pair.split(':')
  hash[key] = value
end

# TODO: Escribe tu código a continuación
# Usa métodos de hash para:
# 1. Imprimir cada clave (una por línea)
# 2. Imprimir "---" como separador
# 3. Imprimir cada valor (uno por línea)
# 4. Imprimir "---" como separador
# 5. Imprimir el número de pares clave-valor
# 6. Imprimir "---" como separador
# 7. Imprimir true/false si el hash está vacío
# 8. Imprimir "---" como separador
# 9. Imprimir true/false si key_to_check existe en el hash
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos