Menu
Coddy logo textTech

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 valores existentes y eliminar entradas mientras se ejecuta tu programa.

Para añadir un nuevo par o actualizar un valor existente, asigna 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  # Salida: {"name"=>"Alice", "age"=>26, "city"=>"Paris"}

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

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

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

person.delete("city")

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

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

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

removed_age = person.delete("age")

puts removed_age  # Salida: 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. Un nombre de estudiante (string)
  2. Una calificación inicial (integer)
  3. Una nueva calificación para actualizar (integer)
  4. Un nuevo par clave-valor en el formato key:value (por ejemplo, subject:Math)

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

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

Luego realiza estas modificaciones:

  1. Actualiza la clave "grade" con el nuevo valor de la calificación
  2. Agrega un nuevo par clave-valor utilizando la clave y el valor de la cuarta entrada (el valor debe seguir siendo un string)
  3. Elimina la clave "name" del hash y almacena el valor eliminado

Imprime el nombre eliminado en la primera línea, luego 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"}

Hoja de referencia

Para añadir un nuevo par clave-valor o actualizar un valor existente en un hash, utiliza 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  # Salida: {"name"=>"Alice", "age"=>26, "city"=>"Paris"}

Si la clave existe, el valor se reemplaza. Si no existe, se añade un nuevo par.

Para eliminar un par clave-valor, utiliza el método delete:

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

person.delete("city")

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

El método delete devuelve el valor eliminado:

removed_age = person.delete("age")

puts removed_age  # Salida: 25

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

Pruébalo tú mismo

# Leer 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 llaves "name" y "grade"
# 2. Actualiza la llave "grade" con el nuevo valor de la calificación
# 3. Analiza el key_value_pair y agrégalo al hash
# 4. Elimina la llave "name" y almacena el valor eliminado

# Imprimir el nombre eliminado
puts removed_name
# Imprimir 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