1
resposta

Imprimindo de forma ordenada um array(forEach) em um sub Objeto

const cliente = {
  nome: 'Andre',
  idade: 36,
  cpf: '12543652266',
  email: 'andre@email.com',
  fones: [ '5591235498', '5521988743124' ],
  dependentes: [{
    nome: 'Sara Silva',
    parentesco: 'filha',
    dataNasc: '20/03/2011'
  }]
}

cliente.dependentes.push({
    nome:"Samia Maria",
    parentesco:"filha",
    dataNasc:"04/01/2014"
})


const filhaMaisNova = cliente.dependentes.filter(dependente => dependente.dataNasc==="04/01/2014")
const chaves=["nome","parenteso","dataNasc"]
chaves.forEach( info => console.log(filhaMaisNova[info])) //unefined undefined undefined
chaves.forEach( info => console.log(cliente.dependentes[info]))

//console.log(filhaMaisNova[0].nome)
//console.log(filhaMaisNova)

Olá caro instrutor, vimos na aula 4 da 2a lição que podemos adicionar mais valores as propriedades do subobjeto 'dependentes' usando o método de array push. Eu tentei imprimir no terminal usando aquela rotina bem legal que o André e a Ju ensinaram usando o método forEach. E quando rodo, ele me retorna no console undefined nas três chaves. Eu gostaria de usar o forEach para ficar organizado o resultado da minha request. E a minha segunda dúvida habita no código abaixo onde usei forEach uma segunda vez, sem a função filhaMaisNova. Eu queria ter imprimido todo o objeto dependentes sem o filtro e mais uma vez me retornou undefined três vezes. O que eu devo corrigir para o resultado sair os valores das chaves respectivas que o meu código pede?

1 resposta

Olá,

O problema é que vc esta usando um Array dentro de outro Array. E quando vc usa o Filter ele esta retornando um Array de Array

Uma forma de vc ver o resultado que vc quer é só colocar indice zero do array mais externo, Ou usar Destructuring (nesse link tem mais sobre: https://www.youtube.com/watch?v=f8a-qwKC5yk&ab_channel=AluraCursosOnline)

OBS: Tinha um parenteso em vez de parentesco

Isso é meio gambiarra

const cliente = {
    nome: 'Andre',
    idade: 36,
    cpf: '12543652266',
    email: 'andre@email.com',
    fones: [ '5591235498', '5521988743124' ],
    dependentes: [{
      nome: 'Sara Silva',
      parentesco: 'filha',
      dataNasc: '20/03/2011'
    }]
  }

  cliente.dependentes.push({
      nome:"Samia Maria",
      parentesco:"filha",
      dataNasc:"04/01/2014"
  })


  const filhaMaisNova = cliente.dependentes.filter(dependente => dependente.dataNasc==="04/01/2014")
  const chaves=["nome","parentesco","dataNasc"]
  chaves.forEach( info => console.log(filhaMaisNova[0][info]))

Isso é Destructuring (mais bunito) "eu acho"

const cliente = {
    nome: 'Andre',
    idade: 36,
    cpf: '12543652266',
    email: 'andre@email.com',
    fones: [ '5591235498', '5521988743124' ],
    dependentes: [{
      nome: 'Sara Silva',
      parentesco: 'filha',
      dataNasc: '20/03/2011'
    }]
  }

  cliente.dependentes.push({
      nome:"Samia Maria",
      parentesco:"filha",
      dataNasc:"04/01/2014"
  })


  const [filhaMaisNova] = cliente.dependentes.filter(dependente => dependente.dataNasc==="04/01/2014")
  const chaves=["nome","parentesco","dataNasc"]
  chaves.forEach( info => console.log(filhaMaisNova[info]))