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"}

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

Practica por tu cuenta: Compilador de Ruby online