Segue a resolução da lista de exercícios.
Particularmente gostei bastante desta, principalmente as duas últimas questões.
Estou aberto a feedbacks, dicas e correções.
function exibirLinhas() {
console.log('>','==='.repeat(35), '¬ \n',);
};
exibirLinhas();
// 1 - Crie um arquivo chamado infoPessoa.js. Nesse arquivo, crie um objeto chamado pessoa que represente informações sobre uma pessoa. Este objeto deve ter as seguintes propriedades:
// nome (string): Nome da pessoa.
// idade (number): Idade da pessoa.
// solteiro (boolean): Indicador de estado civil (true se solteiro, false se casado).
// hobbies (array): Lista de hobbies da pessoa.
// Adicione valores a cada propriedade do objeto pessoa. Use valores fictícios para simular uma pessoa específica.
const pessoa = {
nome: 'Roronoa Zoro',
idade: 21,
solteiro: true,
hobbies: ['treinar', 'beber', 'usar espadas'],
}
// Crie uma função chamada mostrarInfoPessoa que aceite o objeto pessoa como parâmetro e imprima todas as informações da pessoa no console, incluindo o tipo de dado de cada propriedade.
function mostrarInfoPessoa ( obj ){
console.log("Informações da Pessoa:");
for (let chave in obj){
console.log(chave, obj[chave], typeof(obj[chave]));
}
}
// No final do arquivo infoPessoa.js, chame a função mostrarInfoPessoa passando o objeto pessoa como argumento.
mostrarInfoPessoa(pessoa);
// Dica: você pode usar um método de array para retirar os elementos dos colchetes e exibi-los como texto.
exibirLinhas();
// 2 - Adicione ao objeto pessoa uma nova propriedade chamada endereco. Esta propriedade deve ser um objeto representando o endereço da pessoa, com as seguintes subpropriedades:
// rua (string): nome da rua.
// cidade (string): nome da cidade.
// estado (string): nome do estado.
// Preencha as subpropriedades do objeto endereco com valores fictícios.
const pessoa2 = {
nome: 'Vincent Law',
idade: 30,
solteiro: true,
hobbies: ['trabalhar', 'gravar vídeos'],
endereco: {
rua: 'Dormitório de Trabalhadores Imigrantes',
setor: 'Zona Industrial',
cidade: 'Cidade-cúpula de Romdo',
}
}
// Modifique a função mostrarInfoPessoa para incluir as informações do endereço da pessoa ao ser chamada.
// >>>>>>>> mantive a função original pois usando o for...in ela já percorre objetos aninhados <<<<<<<<
// No final do arquivo infoPessoa.js, chame a função mostrarInfoPessoa para verificar se as informações atualizadas, incluindo o endereço, são exibidas corretamente no console.
mostrarInfoPessoa(pessoa2);
exibirLinhas();
// 3 - Crie uma lista de pessoas chamada pessoas que será um array contendo objetos. Cada objeto deve representar uma pessoa e conter as seguintes propriedades:
// nome (string): nome da pessoa.
// idade (number): idade da pessoa.
// cidade (string): cidade de residência da pessoa.
// Adicione pelo menos três objetos à lista pessoas com informações fictícias de diferentes pessoas.
const pessoas = [
{
nome: 'Roronoa Zoro',
idade: 21,
cidade: 'Vila Shimotsuki',
},
{
nome: 'Proxy One',
idade: 30,
cidade: 'Cidade-cúpula de Romdo',
},
{
nome: 'Suguru Geto',
idade: 27,
cidade: 'Tóquio',
}
];
// a) Crie uma função chamada mostrarListaPessoas que aceita a lista pessoas como parâmetro e imprima no console as informações de cada pessoa na lista.
console.log('a) Mostrando a lista de pessoas:');
function mostrarListaPessoas(arr){
for (let pessoa of arr){
console.log(`Nome: ${pessoa.nome}, Idade: ${pessoa.idade}, Cidade: ${pessoa.cidade}`);
}
}
mostrarListaPessoas(pessoas)
// b) Adicione uma nova pessoa à lista pessoas utilizando o método push. Certifique-se de que a nova pessoa tenha informações distintas das pessoas já existentes na lista.
console.log('\nb) e c) Adicionando uma nova pessoa à lista e exibindo a lista atualizada:');
pessoas.push({
nome: 'Edward Newgate',
idade: 72,
cidade: 'Ilha Sphinx',
});
// c) Chame a função mostrarListaPessoas para verificar se as informações, incluindo a nova pessoa, são exibidas corretamente no console.
mostrarListaPessoas(pessoas);
// d) Crie uma função chamada filtrarPorCidade que aceita a lista pessoas e uma string cidade como parâmetros. A função deve retornar uma nova lista contendo apenas as pessoas que residem na cidade fornecida.
function filtrarPorCidade(arr, cidade){
const resultado = arr.filter( (pessoa) => pessoa.cidade === cidade );
return resultado;
}
// Chame a função filtrarPorCidade passando a lista pessoas e uma cidade fictícia como argumentos e imprima no console o resultado obtido.
console.log('\nd) Pessoas que residem em Tóquio:');
mostrarListaPessoas(filtrarPorCidade(pessoas, 'Tóquio'));
exibirLinhas();