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

[Dúvida] Questão Lista Pessoas Desafio

Olá! Estou com um problema no exercício que solicita a criação de um array de objetos e pede para imprimir os objetos no console depois. Quando copio o código nos dado na resolução funciona tranquilamente, porém eu estava buscando outras formas de fazer o exercício, sem o forEach, e não entendi o por que de não ter funcionado apenas com o for. O código que escrevi foi:

const ListaPessoas = 
[
    {nome: 'Paulo', idade: 14, cidade: 'São Caetano do Sul'},
    {nome:'Diogo', idade: 19, cidade: 'São Paulo'},
    {nome: 'Letícia', idade: 20, cidade: 'Santo André'}
]

function mostrarListaPessoas (pessoas)
{
    console.log("Lista de Pessoas:\n");

for(let i =0; i<pessoas.length; i++){
    console.log(`Nome: ${pessoas.nome}, Idade: ${pessoas.idade}, cidade: ${pessoas.cidade}`);
}

mostrarListaPessoas(ListaPessoas);

No console ele aparece:

Nome: undefined, Idade: undefined, cidade: undefined
Nome: undefined, Idade: undefined, cidade: undefined
Nome: undefined, Idade: undefined, cidade: undefined

Eu não consegui entender o motivo dele não ter conseguido ler os valores dos objetos, visto que eu passei o array como parâmetro quando chamei a função! Alguém poderia me ajudar?

1 resposta
solução!

Olá, André!

Pelo que vi, o problema no seu código está na forma como você está acessando as propriedades dos objetos dentro do loop for. Você está tentando acessar as propriedades diretamente do array pessoas, mas na verdade deve acessar as propriedades de cada objeto dentro do array.

Aqui está a correção no seu código:

const ListaPessoas = [
    {nome: 'Paulo', idade: 14, cidade: 'São Caetano do Sul'},
    {nome:'Diogo', idade: 19, cidade: 'São Paulo'},
    {nome: 'Letícia', idade: 20, cidade: 'Santo André'}
];

function mostrarListaPessoas(pessoas) {
    console.log("Lista de Pessoas:\n");

    for(let i = 0; i < pessoas.length; i++) {
        console.log(`Nome: ${pessoas[i].nome}, Idade: ${pessoas[i].idade}, Cidade: ${pessoas[i].cidade}`);
    }
}

mostrarListaPessoas(ListaPessoas);

A principal mudança foi acessar as propriedades dos objetos individuais dentro do array pessoas usando pessoas[i].nome, pessoas[i].idade e pessoas[i].cidade dentro do loop for.

Espero ter ajudado e bons estudos!