2.7 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
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];