1
resposta

[Dúvida] EX 3

Boa noite! Não entendi pq o console me retorna undefined. Pode me ajudar?

const pessoa= [
    {
    nome: 'Rafael',
    idade: 16,
    cidade: 'Riyadh'
}]
   

function mostrarListaPessoas(pessoa){
    console.log(`pessoa: ${pessoa.nome}`);

}
console.log(mostrarListaPessoas(pessoa));


1 resposta

Oi Flavio,

O problema é que você está tratando pessoa como um objeto diretamente dentro da função mostrarListaPessoas, mas na verdade, pessoa é um array que contém um objeto. Para acessar o nome, você precisa acessar o primeiro elemento do array e então a propriedade nome.

Tratando pessoa com um array:

const pessoa = [
    {
        nome: 'Rafael',
        idade: 16,
        cidade: 'Riyadh'
    }
];

function mostrarListaPessoas(pessoa) {
    console.log(`pessoa: ${pessoa[0].nome}`);
}

mostrarListaPessoas(pessoa);

A segunda opção é pessoa ser um objeto

const pessoa = 
    {
        nome: 'Rafael',
        idade: 16,
        cidade: 'Riyadh'
    };

function mostrarListaPessoas(pessoa) {
    console.log(`pessoa: ${pessoa.nome}`);
}

mostrarListaPessoas(pessoa);

Além disso, a função mostrarListaPessoas não tem um retorno explícito, portanto, quando você faz console.log(mostrarListaPessoas(pessoa)), o console imprime o resultado da execução da função (o log interno da função) e depois imprime undefined (o retorno da função). Se você deseja apenas exibir o log da pessoa, basta chamar a função diretamente: mostrarListaPessoas(pessoa);

tux matrix    Caso este post o tenha ajudado, por favor, marcar como solucionado ☑️. Bons Estudos! 🤓