freeCodeCamp/curriculum/challenges/espanol/02-javascript-algorithms-an.../basic-javascript/accessing-object-properties...

2.7 KiB

id title challengeType videoUrl forumTopicId dashedName
56533eb9ac21ba0edf2244c9 Accede a propiedades de objetos con variables 1 https://scrimba.com/c/cnQyKur 16165 accessing-object-properties-with-variables

--description--

Otro uso de la notación de corchetes en objetos es acceder a una propiedad que está almacenada como el valor de una variable. Esto puede ser muy útil para iterar a través de las propiedades de un objeto o para acceder a una tabla de búsqueda.

Aquí hay un ejemplo del uso de una variable para acceder a una propiedad:

const dogs = {
  Fido: "Mutt",
  Hunter: "Doberman",
  Snoopie: "Beagle"
};

const myDog = "Hunter";
const myBreed = dogs[myDog];
console.log(myBreed);

La cadena Doberman se mostrará en la consola.

Otra forma de usar este concepto es cuando el nombre de la propiedad se recoge dinámicamente durante la ejecución del programa, de la siguiente manera:

const someObj = {
  propName: "John"
};

function propPrefix(str) {
  const s = "prop";
  return s + str;
}

const someProp = propPrefix("Name");
console.log(someObj[someProp]);

someProp tendrá una cadena con un valor propName y la cadena John se mostrará en la consola.

Ten en cuenta que no usamos comillas alrededor del nombre de la variable cuando la usamos para acceder a la propiedad porque utilizamos el valor de la variable, no el nombre.

--instructions--

Establece la variable playerNumber a 16. Luego, usa la variable para buscar el nombre del jugador y asignarlo a player.

--hints--

playerNumber debe ser un número

assert(typeof playerNumber === 'number');

La variable player debe ser una cadena

assert(typeof player === 'string');

El valor de player debe ser la cadena Montana

assert(player === 'Montana');

Debes usar la notación de corchete para acceder a testObj

assert(/testObj\s*?\[.*?\]/.test(code));

No debes asignar el valor de Montana a la variable player directamente.

assert(!code.match(/player\s*=\s*"|\'\s*Montana\s*"|\'\s*;/gi));

Debes usar la variable playerNumber en tu notación de corchete

assert(/testObj\s*?\[\s*playerNumber\s*\]/.test(code));

--seed--

--after-user-code--

if(typeof player !== "undefined"){(function(v){return v;})(player);}

--seed-contents--

// Setup
const testObj = {
  12: "Namath",
  16: "Montana",
  19: "Unitas"
};

// Only change code below this line
const playerNumber = 42;  // Change this line
const player = testObj;   // Change this line

--solutions--

const testObj = {
  12: "Namath",
  16: "Montana",
  19: "Unitas"
};
const playerNumber = 16;
const player = testObj[playerNumber];