Fiquei com uma dúvida sobre o uso de uma propriedade do objeto dentro de uma função.
Ao tentar usar o ponto para acessar a propriedade, a função simplesmente não funciona, mas ao utilizar o colchetes, ele funciona… Alguém sabe me explicar o motivo?
Fiquei fazendo testes com o console.log() para ter certeza se não tinha escrito nada errado, mas somente trocar o ponto pelo colchetes no código já resolve todo o problema.
Vou deixar abaixo os dois códigos que usei para a resolução. O primeiro não funciona, o segundo funciona.
**Seu código até o momento**
—> Nesse código, o console.log() que uso para ter certeza que a propriedade foi puxada, me dá resposta “undefined”.
function checkObj(obj, checkProp) {
// Altere apenas o código abaixo desta linha
let teste = obj.hasOwnProperty(checkProp);
let propriedade = obj.checkProp;
if (teste === true) {
console.log(propriedade);
return propriedade;
} else {
return “Not Found”;
}
}
checkObj(
{gift: “pony”, pet: “kitten”, bed: “sleigh”},
“gift”);
Código corrigido
→ Apenas alterei a forma que acesso a propriedade, não consegui entender pq uma dá errado e a outra não.
function checkObj(obj, checkProp) {
// Altere apenas o código abaixo desta linha
let teste = obj.hasOwnProperty(checkProp);
let propriedade = obj[checkProp];
if (teste === true) {
console.log(propriedade);
return propriedade;
} else {
return “Not Found”;
}
}
checkObj(
{gift: “pony”, pet: “kitten”, bed: “sleigh”},
“gift”);
**Informações de seu navegador:**
Agente de usuário: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36
Desafio: Testar objetos por propriedades
Link para o desafio: