2021-06-15 00:49:18 -07:00
---
id: 56533eb9ac21ba0edf2244c9
2021-07-21 20:53:20 +05:30
title: Acessar propriedades de objetos com variáveis
2021-06-15 00:49:18 -07:00
challengeType: 1
videoUrl: 'https://scrimba.com/c/cnQyKur'
forumTopicId: 16165
dashedName: accessing-object-properties-with-variables
---
# --description--
2021-07-09 21:23:54 -07:00
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.
2021-06-15 00:49:18 -07:00
2021-07-09 21:23:54 -07:00
Aqui está um exemplo de usar uma variável para acessar uma propriedade:
2021-06-15 00:49:18 -07:00
```js
2021-10-27 15:10:57 +00:00
const dogs = {
Fido: "Mutt",
Hunter: "Doberman",
Snoopie: "Beagle"
2021-06-15 00:49:18 -07:00
};
2021-10-27 15:10:57 +00:00
const myDog = "Hunter";
const myBreed = dogs[myDog];
2021-06-15 00:49:18 -07:00
console.log(myBreed);
```
2021-07-09 21:23:54 -07:00
A string `Doberman` seria exibida no console.
2021-06-15 00:49:18 -07:00
2021-07-09 21:23:54 -07:00
Outra forma de você usar esse conceito é quando o nome da propriedade é coletado dinamicamente, durante a execução do programa, da seguinte forma:
2021-06-15 00:49:18 -07:00
```js
2021-10-27 15:10:57 +00:00
const someObj = {
2021-06-15 00:49:18 -07:00
propName: "John"
};
2021-10-27 15:10:57 +00:00
2021-06-15 00:49:18 -07:00
function propPrefix(str) {
2021-10-27 15:10:57 +00:00
const s = "prop";
2021-06-15 00:49:18 -07:00
return s + str;
}
2021-10-27 15:10:57 +00:00
const someProp = propPrefix("Name");
2021-06-15 00:49:18 -07:00
console.log(someObj[someProp]);
```
2021-07-09 21:23:54 -07:00
`someProp` teria o valor da string `propName` e a string `John` seria exibida no console.
2021-06-15 00:49:18 -07:00
2021-07-09 21:23:54 -07:00
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* .
2021-06-15 00:49:18 -07:00
# --instructions--
2021-07-09 21:23:54 -07:00
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` .
2021-06-15 00:49:18 -07:00
# --hints--
2021-07-09 21:23:54 -07:00
`playerNumber` deve ser um número
2021-06-15 00:49:18 -07:00
```js
assert(typeof playerNumber === 'number');
```
2021-07-09 21:23:54 -07:00
A variável `player` deve ser uma string
2021-06-15 00:49:18 -07:00
```js
assert(typeof player === 'string');
```
2021-07-09 21:23:54 -07:00
O valor de `player` deve ser a string `Montana`
2021-06-15 00:49:18 -07:00
```js
assert(player === 'Montana');
```
2021-07-09 21:23:54 -07:00
Você deve usar a notação de colchetes para acessar `testObj`
2021-06-15 00:49:18 -07:00
```js
assert(/testObj\s*?\[.*?\]/.test(code));
```
2021-07-09 21:23:54 -07:00
Você não deve usar o valor `Montana` diretamente para a variável `player` .
2021-06-15 00:49:18 -07:00
```js
assert(!code.match(/player\s*=\s*"|\'\s*Montana\s*"|\'\s*;/gi));
```
2021-07-09 21:23:54 -07:00
Você deve estar usando a variável `playerNumber` na sua notação de colchetes
2021-06-15 00:49:18 -07:00
```js
assert(/testObj\s*?\[\s*playerNumber\s*\]/.test(code));
```
# --seed--
## --after-user-code--
```js
if(typeof player !== "undefined"){(function(v){return v;})(player);}
```
## --seed-contents--
```js
// Setup
2021-10-27 15:10:57 +00:00
const testObj = {
2021-06-15 00:49:18 -07:00
12: "Namath",
16: "Montana",
19: "Unitas"
};
// Only change code below this line
2021-10-27 15:10:57 +00:00
const playerNumber = 42; // Change this line
const player = testObj; // Change this line
2021-06-15 00:49:18 -07:00
```
# --solutions--
```js
2021-10-27 15:10:57 +00:00
const testObj = {
2021-06-15 00:49:18 -07:00
12: "Namath",
16: "Montana",
19: "Unitas"
};
2021-10-27 15:10:57 +00:00
const playerNumber = 16;
const player = testObj[playerNumber];
2021-06-15 00:49:18 -07:00
```