1
resposta

[Projeto] Desafio Mód. Objetos (JS) - Espalhamento com looping

Olá pessoal!

Gostaria de compartilhar o resultado de um desafio proposto pela @Juliana Amoasei no curso de Objetos em Javascript, percorrendo tanto com ForEach (método para array) quanto com ForIn (método para objeto).

// Lista de dependentes utilizando laço de repetição
// Desafio: Extrair de uma listagem de clientes apenas as informações de dependentes e montar uma lista única, para análise de outros departamentos do banco

// Criando um array de objetos
const clientes = [
    {
        nome: 'André',
        cpf: '11122233344',
        dependentes: [{
            nome: 'Sara Silva',
            parentesco: 'filha',
            dataNasc: '20/03/2011'
        },
        {
            nome: 'Samira Silva',
            parentesco: 'filha',
            dataNasc: '29/09/2019'
        }],
        },
        {
            nome: 'Juliana',
            cpf: '22233344455',
            dependentes: [{
                nome: 'Sophia Mendes',
                parentesco: 'filha',
                dataNasc: '20/03/2011'
            }]
        }
    ]

// Percorrendo o objeto sem precisar chamar índice a índice manualmente

// Método ForEach para percorrer o array
// 1. Criamos um array vazio para guardar os dados
// 2. Como vamos percorrer o array dentro do objeto, armazenamos em uma const o resultado da busca chamando ForEach para o *objeto* -clientes-
// 3. Chamando o método push pelo array criado, dado a dado será inserido neste array a cada loop
// 4. E para o espalhamento, chamamos o índice seguido do *array* -dependentes-

let listaDependentesForEach = [];

const buscaDependentes = clientes.forEach(indice => {
    listaDependentesForEach.push(...indice.dependentes);
});

// Método For-In para percorrer o objeto
// 1. Criamos um array vazio para guardar os dados
// 2. Montamos a estrutura For-In, referenciando o *objeto* -clientes-
// 3. Chamando o método push pelo array criado, onde dado a dado será inserido neste array a cada loop
// 4. E para o espalhamento, chamamos *objeto* -clientes- (com índice) seguido do *array* -dependentes-

let listaDependentesForIn = [];

for( let indice in clientes) {
    listaDependentesForIn.push(...clientes[indice].dependentes);
}

console.log(listaDependentesForEach);
console.log(listaDependentesForIn);

// Saídas terminal
{ nome: 'Sara Silva', parentesco: 'filha', dataNasc: '20/03/2011' },
  { nome: 'Samira Silva', parentesco: 'filha', dataNasc: '29/09/2019' },
  {
    nome: 'Sophia Mendes',
    parentesco: 'filha',
    dataNasc: '20/03/2011'
  }
]
[
  { nome: 'Sara Silva', parentesco: 'filha', dataNasc: '20/03/2011' },
  { nome: 'Samira Silva', parentesco: 'filha', dataNasc: '29/09/2019' },
  {
    nome: 'Sophia Mendes',
    parentesco: 'filha',
    dataNasc: '20/03/2011'
  }
]
1 resposta

Olá Dayane!

Obrigada por compartilhar esse desafio conosco. É muito interessante ver diferentes formas de percorrer um objeto em JavaScript.

A solução que você apresentou utilizando ForEach e ForIn é muito eficiente e elegante. Além disso, o exemplo prático que você utilizou para extrair informações de uma lista de clientes é muito útil para entender como utilizar esses métodos, na prática.

Continue praticando e explorando as possibilidades da linguagem. Espero ter ajudado e bons estudos!