Saltar al contenido principal
Codigo Heroe
Tarea anterior
Objetos23/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

Notación de corchetes

¿Notaste algo diferente en el ejemplo del diccionario?

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

Antes accedíamos a las propiedades con un punto. Aquí usamos corchetes, como al leer un arreglo: catsFavoriteFood[name]. También se puede. Esta forma se llama notación de corchetes, y la del punto se llama notación de punto. ¡Qué originales somos al poner nombres!

La notación de corchetes es más flexible. Por ejemplo, permite leer una propiedad cuyo nombre está guardado en una variable:

let name = 'Cupcake';
let catsFavoriteFood = { 'Cupcake': 'pescado' };

console.log(catsFavoriteFood.name); // Muestra: undefined

console.log(catsFavoriteFood[name]); // Muestra: pescado

El primer mensaje muestra undefined porque el objeto no tiene una propiedad llamada name. El segundo muestra el valor que buscamos: entre corchetes se evalúa la variable y se usa su valor como clave.

console.log(catsFavoriteFood[name]);
// Equivale a usar el valor de name como clave:
console.log(catsFavoriteFood['Cupcake']);

Una sorpresa más: las claves pueden ser cualquier cadena, incluso una con espacios. No podremos acceder a esas propiedades con la notación de punto, pero sí con corchetes.

let cat = { 'favorite food': 'Crema agria' };

// Produce un error
console.log(cat.favorite food);

// Funciona correctamente
console.log(cat['favorite food']);

Por cierto, ¿por qué pusimos los diccionarios al principio del programa y fuera de la función? Sus valores no dependen de los parámetros ni del objeto de una computadora en particular. Son reglas para todo el programa y podemos usarlas en otras funciones y operaciones. Si los declaráramos dentro de la función, se crearían de nuevo cada vez que la llamáramos.

¿Por qué podemos acceder a ellos desde dentro de la función? Por las reglas de alcance: el código de la función puede acceder a esos objetos declarados fuera de ella. Estudiaremos el alcance con más detalle en otros capítulos.

Ya tenemos los diccionarios y sabemos usarlos. Ahora podemos calcular el precio de la computadora en una sola expresión. Modificaremos getPrice para agregar los nuevos cálculos.

  • script.js
JavaScript
let processorPrice = { 'i5': 5000, 'i7': 10000 }; let displayPrice = { 13: 5000, 15: 10000 }; let memoryPrice = { 8: 3000, 16: 4000 }; 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. En getPrice, reemplaza el valor devuelto computer.basicPrice por la expresión computer.basicPrice + processorPrice[computer.processor] + displayPrice[computer.display] + memoryPrice[computer.memory].
    Codigo Heroe

    © 2023-2026, codigoheroe.com