Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre o acesso dos elementos do objeto

Olá! Boa noite! :D

A minha dúvida é simples, antes de ser demonstrado na aula o uso do for each para perpassar todos os elementos do objeto, testei fazer o seguinte:

const cliente = {
    nome: "Andre",
    idade: 26,
    cpf: "123456789",
    email: "andre@gmail.com"
}
const chaves = ["nome", "idade", "cpf", "email"];

console.log(cliente[chaves[0]]);
console.log(cliente[chaves[0, 1]]);

O que me retornou o seguinte resultado:

Andre
26

Deduzi que se eu colocasse o resto dos números o console.log me retornaria todos os valores das suas respectivas chaves porém não foi o que aconteceu:

console.log(cliente[chaves[0]]);
console.log(cliente[chaves[0, 1, 2, 3]]);

obtendo como resultado desse ultimo console.log:

Andre
andre@gmail.com

Alguém pode me explicar porque ele pegou apenas o primeiro e o último valor das chaves?

1 resposta
solução!

Oi Ednirli,

Quando você quiser acessar o elemento de um array se deve passar a posição dele (um único número), você está passando vários números com o intuito do javascript ler todas essas posições de uma vez, o que não acontece. O que o javascript está fazendo é pegar a última posição e ignorar todos os outros números.

Em cliente[chaves[0, 1, 2, 3]] ele está pegando o valor "andre@gmail.com" porque ao você passar chaves[0, 1, 2, 3] o javascript irá interpretar como chaves[3] que contém como valor a propriedade email. Pegou a idéia? Você só pode acessar um valor por vez, como você fez em cliente[chaves[0]].

Bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software