Menu
CoddyTech

Modificar Hashes

Parte de la sección Fundamentos del Journey de Ruby de Coddy. Lección 75 de 88.

Los hashes no son estáticos una vez creados. Puedes añadir nuevos pares clave-valor, actualizar los valores existentes y eliminar entradas mientras se ejecuta tu programa.

Para añadir un nuevo par o actualizar un valor existente, asigna el valor a la clave usando corchetes:

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

person["city"] = "Paris"      # Añade un nuevo par clave-valor
person["age"] = 26            # Actualiza el valor existente

puts person  # Muestra: {"name"=>"Alice", "age"=>26, "city"=>"Paris"}

Si la clave existe, el valor se reemplaza. Si no existe, se agrega un nuevo par al hash.

Para eliminar un par clave-valor, usa el método delete con la clave que quieras eliminar:

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

person.delete("city")

puts person  # Imprime: {"name"=>"Alice", "age"=>25}

El método delete devuelve el valor que se eliminó, lo cual puede ser útil si necesitas usarlo:

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

removed_age = person.delete("age")

puts removed_age  # Imprime: 25

Si intentas eliminar una clave que no existe, Ruby simplemente devuelve nil sin generar un error.

challenge icon

Desafío

Fácil

Lee cuatro líneas de entrada:

  1. El nombre de un estudiante (cadena)
  2. Una calificación inicial (entero)
  3. Una nueva calificación para actualizar (entero)
  4. Un nuevo par clave-valor en el formato key:value (p. ej., subject:Math)

Crea un hash llamado student con los siguientes pares clave-valor iniciales:

  • "name" asociado al nombre del estudiante
  • "grade" asociado a la calificación inicial (como entero)

Después realiza estas modificaciones:

  1. Actualiza la clave "grade" con el nuevo valor de la calificación
  2. Añade un nuevo par clave-valor usando la clave y el valor de la cuarta entrada (el valor debe seguir siendo una cadena)
  3. Elimina la clave "name" del hash y guarda el valor eliminado

Imprime el nombre eliminado en la primera línea y, después, imprime el hash final en la segunda línea.

Por ejemplo, si las entradas son Alice, 85, 92 y subject:Math, la salida debería ser:

Alice
{"grade"=>92, "subject"=>"Math"}

Si las entradas son Bob, 70, 75 y status:passing, la salida debería ser:

Bob
{"grade"=>75, "status"=>"passing"}

Si las entradas son Charlie, 100, 95 y note:excellent, la salida debería ser:

Charlie
{"grade"=>95, "note"=>"excellent"}

Pruébalo tú mismo

# Lee la entrada
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# TODO: Escribe tu código a continuación
# 1. Crea un hash llamado 'student' con las claves "name" y "grade"
# 2. Actualiza la clave "grade" con el nuevo valor de la nota
# 3. Analiza key_value_pair y añádelo al hash
# 4. Elimina la clave "name" y guarda el valor eliminado

# Muestra el nombre eliminado
puts removed_name
# Muestra el hash final
puts student
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

Practica por tu cuenta: Compilador de Ruby online