HELP , manipulando array de objetos

25/05/2020

0

HELP, dei uma travada nos meus estudos e precisava de uma ajuda para sair desse buraco!
estou com um problema para LISTAR propriedades de um array de objetos.
o problema é que eu só consigo retornar o conteúdo via STRINGIFY,
gostaria de conseguir retornar apenas uma das propriedades desse array para injetar no meu html,segue o código:


class listaConvidados{

constructor() {

this.convidados = [];
}


adicionar(nome,idade,cpf){

var convidados = {nome:nome, idade:idade, cpf:cpf}
this.convidados.push(convidados);

console.log(convidados);
}

listar(){

var lista = document.getElementById("resultado");
var nome = JSON.stringify(this.convidados);
var texto = document.createTextNode(nome);

lista.appendChild(texto);

}

}

var listaConv = new listaConvidados();

document.getElementById("adicionarConvidado").onclick = function(){

var nome = document.getElementById("name").value;
var idade = document.getElementById("age").value;
var cpf = document.getElementById("docnum").value;

listaConv.adicionar(nome, idade, cpf);
}


document.getElementById("listAll").onclick = function () {

listaConv.listar();
}
Lucas

Lucas

Responder

Posts

29/05/2020

Allan

Vamos lá.
O elemento que você está apontando para colocar no seu HTML ainda é do tipo Object ( Arrays e Objetos compartilham o mesmo tipo Object ).

O seu erro está na função listar, que deveria criar um textNode pra cada entrada do seu objeto dentro do contexto da classe. Segue o exemplo:

listar(){
  var lista = document.getElementById("resultado");
  var nome = document.createTextNode(this.convidados.nome);
  var idade= document.createTextNode(this.convidados.idade);
  var cpf = document.createTextNode(this.convidados.cpf);

  lista.appendChild(texto);
  lista.appendChild(idade);
  lista.appendChild(nome);
}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar