Saltar al contenido principal
Codigo Heroe
Tarea anterior
Objetos22/25
A la lista de tareas
  1. 1. Una función para lanzar los dados
  2. 2. Pasar los datos de los participantes
  3. 3. Sumar puntos con +=
  4. 4. Crear un objeto
  5. 5. Leer propiedades con la notación de punto
  6. 6. Un arreglo de objetos
  7. 7. Modificar las propiedades de un objeto
  8. 8. Referencias a objetos
  9. 9. Agrupar las reglas en un objeto
  10. 10. Un ciclo para los intentos
  11. 11. Una función para encontrar ganadores
  12. 12. Recorrer los objetos de un arreglo
  13. 13. Buscar la puntuación máxima
  14. 14. Agregar ganadores con push
  15. 15. Detectar un empate general
  16. 16. Construir el mensaje de los ganadores
  17. 17. Agregar participantes y cambiar las reglas
  18. 18. Ajustar el mensaje con condiciones
  19. 19. Devolver un objeto desde una función
  20. 20. Crear y llamar a un método
  21. 21. Leer propiedades desde un método
  22. 22. Un objeto como diccionario
  23. 23. Notación de corchetes
  24. 24. El contexto de la llamada y this
  25. 25. Crear otro objeto con la misma función
Siguiente tarea
  • Matriz de skills
  • Cursos
  • Registro
  • Iniciar sesión

Loading…
En unos segundos, estará listo.

  • Teoría
  • Teoría

Un objeto como diccionario

Ahora calcularemos el precio de la computadora. Es la suma del precio base y del costo de sus componentes. Estos son los precios:

Procesador 'i5'5000
Procesador 'i7'10000
Pantalla de 13 pulgadas5000
Pantalla de 15 pulgadas10000
Memoria RAM de 8 GB3000
Memoria RAM de 16 GB4000

Necesitamos comprobar las propiedades de la computadora y sumar al precio base el importe que corresponda a cada una. Podríamos usar else if para comprobar las opciones de cada característica: si no se cumple una condición, se prueba la siguiente. El código quedaría así:

let price = computer.basicPrice;

if (computer.processor === 'i5') {
  price += 5000;
} else if (computer.processor === 'i7') {
  price += 10000;
}

// Seguimos sumando el costo de los demás componentes

El código funciona, pero ¿no parece demasiado largo? Ahora solo tenemos tres características. ¿Qué pasará si agregamos más?

En algunas situaciones podemos reemplazar los bloques de condiciones por objetos. Veamos cómo hacerlo con un ejemplo.

let printFavoriteFood = function (name) {
  let message = 'Mi comida favorita es ';

  if (name === 'Cupcake') {
    message += 'pescado';
  } else if (name === 'Rodolfo') {
    message += 'hamburguesa';
  } else if (name === 'Copito') {
    message += 'crema agria';
  }

  return message;
};

console.log(printFavoriteFood('Copito')); // Muestra: Mi comida favorita es crema agria

A cada gato, o más exactamente a su nombre, le corresponde una comida. El orden de los gatos no importa. ¿Podemos guardar sus preferencias en un objeto? Probemos.

let catsFavoriteFood = {
  Cupcake: 'pescado',
  Rodolfo: 'hamburguesa',
  Copito: 'crema agria'
};

¿Podemos usar catsFavoriteFood para quitar todas las condiciones de printFavoriteFood? ¡Sí! Es un objeto con propiedades y valores. Podemos acceder a la propiedad que necesitamos e incluir su cadena en la expresión.

let catsFavoriteFood = {
  Cupcake: 'pescado',
  Rodolfo: 'hamburguesa',
  Copito: 'crema agria'
};

let printFavoriteFood = function (name) {
  return 'Mi comida favorita es ' + catsFavoriteFood[name];
};

console.log(printFavoriteFood('Copito')); // Muestra: Mi comida favorita es crema agria

El código sigue haciendo lo mismo, ¡pero el programa es mucho más corto!

En lugar de guardar una característica como name: 'Cupcake', guardamos la relación entre el nombre del gato y su comida favorita. Estos objetos se llaman diccionarios, mapas o arreglos asociativos. Son cómodos y ayudan a escribir código más claro y sencillo.

En nuestro programa también hay un precio para cada opción: por ejemplo, 10000 para el procesador 'i7' y 5000 para la pantalla de 13 pulgadas. Podemos crear diccionarios con esos precios y consultar sus propiedades cuando los necesitemos.

  • script.js
JavaScript
let buildComputer = function (memory, display, processor) { let computer = { basicPrice: 5000, processor: processor, display: display, memory: memory, getDescription: function () { return 'computadora con procesador ' + computer.processor + ', pantalla de ' + computer.display + ' pulgadas, memoria RAM de ' + computer.memory + ' GB'; }, getPrice: function () { return computer.basicPrice; } }; return computer; }; let myComputer = buildComputer(8, 13, 'i7'); console.log('En el carrito: ' + myComputer.getDescription() + ' con un precio de ' + myComputer.getPrice());
Consola

El código ha cambiado, haga clic en "Ejecutar" o active la ejecución automática.

Resultado de la ejecución

ObjetivosRealizado
0
    1. Antes de buildComputer, crea el objeto processorPrice con las propiedades 'i5': 5000 y 'i7': 10000.
    2. Después, crea displayPrice con las propiedades 13: 5000 y 15: 10000.
    3. Agrega memoryPrice con las propiedades 8: 3000 y 16: 4000.
    Codigo Heroe

    © 2023-2026, codigoheroe.com