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 forma más eficaz. Estos métodos te permiten acceder rápidamente a información sobre el contenido de tu hash.
El método keys devuelve un arreglo con todas las claves del hash:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys # Muestra name, age y city, cada uno en su propia líneaDel mismo modo, el método values devuelve un arreglo con todos los valores:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values # Muestra Alice, 25 y Paris, cada uno en su propia líneaPara comprobar si existe una clave específica, usa key? o su alias has_key?:
person = {"name" => "Alice", "age" => 25}
puts person.key?("name") # Imprime: true
puts person.key?("country") # Imprime: falseEl método length te indica cuántos pares clave-valor contiene el hash:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length # Imprime: 3Por último, empty? comprueba si el hash tiene algún par:
data = {}
puts data.empty? # Salida: trueDesafío
FácilLee dos líneas de entrada:
- Un hash representado como pares clave-valor separados por comas, con el formato
key:value(p. ej.,name:Alice,age:25,city:Paris) - Una clave cuya existencia se debe comprobar (cadena)
Analiza la primera entrada para crear un hash y, después, usa los métodos de hash que has aprendido para mostrar la siguiente información, cada elemento en su propia línea:
- Muestra cada clave del hash (una por línea)
- Muestra
---como separador - Muestra cada valor del hash (uno por línea)
- Muestra
---como separador - Muestra el número de pares clave-valor del hash
- Muestra
---como separador - Muestra
trueofalsepara indicar si el hash está vacío - Muestra
---como separador - Muestra
trueofalsepara indicar 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
---
trueSi las entradas son product:Laptop,price:999 y stock, la salida debería ser:
product
price
---
Laptop
999
---
2
---
false
---
falseSi las entradas son status:active y status, la salida debería ser:
status
---
active
---
1
---
false
---
truePruébalo tú mismo
# Lee la entrada
input_string = gets.chomp
key_to_check = gets.chomp
# Analiza 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 los 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 hash está vacío
# 8. Imprimir "---" como separador
# 9. Imprime true/false según si key_to_check existe en hashEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario10FizzBuzz con un giro
Descripción general del juegoEl método FizzBuzz2Variables y tipos de datos
Números y variablesTipo de dato StringTipo de dato BooleanTipo de dato SymbolComprobación de tipos de datosConvenciones de nomenclaturaResumen: Creación de variables5Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleIf - Else anidadosSentencia Unless8Bucles
Bucle For con rangosBucle WhileBreakNextRepaso - FactorialBucle TimesBucle UntilBucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación6Entrada y Salida Básica
Salida con putsSalida con print y pSalida con variablesEntrada con getsMétodo chompConversión de tiposResumen - Calculadora de edadResumen - Verdadero o falsoPractica por tu cuenta: Compilador de Ruby online