2.7 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
id | title | challengeType | videoUrl | forumTopicId | dashedName |
---|---|---|---|---|---|
56533eb9ac21ba0edf2244c9 | Acessando Propriedades de Objetos com Variáveis | 1 | https://scrimba.com/c/cnQyKur | 16165 | accessing-object-properties-with-variables |
--description--
Outro uso de notação de colchetes em objetos é para acessar a propriedade a qual está armazenada como o valor de uma variável. Isso pode ser muito útil para iterar através das propriedades de um objeto ou quando acessando uma tabela de pesquisa.
Aqui está um exemplo de usar uma variável para acessar uma propriedade:
var dogs = {
Fido: "Mutt", Hunter: "Doberman", Snoopie: "Beagle"
};
var myDog = "Hunter";
var myBreed = dogs[myDog];
console.log(myBreed);
A string Doberman
seria exibida no console.
Outra forma de você usar esse conceito é quando o nome da propriedade é coletado dinamicamente, durante a execução do programa, da seguinte forma:
var someObj = {
propName: "John"
};
function propPrefix(str) {
var s = "prop";
return s + str;
}
var someProp = propPrefix("Name");
console.log(someObj[someProp]);
someProp
teria o valor da string propName
e a string John
seria exibida no console.
Observe que não usamos aspas em torno do nome da variável ao usá-la para acessar a propriedade, porque estamos usando o valor da variável, e não o nome.
--instructions--
Defina a variável playerNumber
para ser 16
. Então, use a variável para procurar o nome do jogador e atribuí-la a player
.
--hints--
playerNumber
deve ser um número
assert(typeof playerNumber === 'number');
A variável player
deve ser uma string
assert(typeof player === 'string');
O valor de player
deve ser a string Montana
assert(player === 'Montana');
Você deve usar a notação de colchetes para acessar testObj
assert(/testObj\s*?\[.*?\]/.test(code));
Você não deve usar o valor Montana
diretamente para a variável player
.
assert(!code.match(/player\s*=\s*"|\'\s*Montana\s*"|\'\s*;/gi));
Você deve estar usando a variável playerNumber
na sua notação de colchetes
assert(/testObj\s*?\[\s*playerNumber\s*\]/.test(code));
--seed--
--after-user-code--
if(typeof player !== "undefined"){(function(v){return v;})(player);}
--seed-contents--
// Setup
var testObj = {
12: "Namath",
16: "Montana",
19: "Unitas"
};
// Only change code below this line
var playerNumber; // Change this line
var player = testObj; // Change this line
--solutions--
var testObj = {
12: "Namath",
16: "Montana",
19: "Unitas"
};
var playerNumber = 16;
var player = testObj[playerNumber];