Bom dia. Eu quero mostrar no console todas as propriedades e valores de todos os livros dentro desse array que eu criei, no formato “[PROPRIEDADE]: [VALOR]”. Então fiz o seguinte código, que funciona perfeitamente:
Porém, na linha 9 do console.log, quando tentei colocar books[i].prop em vez de books[i][prop], eu não consegui fazer isso, porque os valores das propriedades foram exibidos como undefined. Alguém poderia me explicar por que isso ocorre?
for(var i = 0; i < books.length;i++) {
for(var props in books[i]) {
console.log(props);
//continua código normal aqui
}
}
Você verá, a cada iteração, uma saída parecida com isso
0
1
0
1
E assim por diante.
Isso ocorre por uma simples razão, ao fazer for, você não pega o nome do atributo, mas, seu índice, começando em 0.
Se quiser acessar o atributo, terá de fazer isso de maneira explícita