Angular 5 , Mapping an array of Objects within another array of Objects

Asked

Viewed 1,321 times

0

Well I’m trying to encapsulate my objects. The first Object it maps the first JSON array.

export interface PraticarObject {

    id_assunto: number;
    nome_assunto: string;
    qt_exercicios_concluidos: string;
    conteudos: ConteudosPraticarArray[];
}

good so far so good, I can get the id_subjects subject name_subject, qt_exercises, but when I try to get the content.

he returns to me like this

inserir a descrição da imagem aqui

the Conteudospraticararray class is so.

export interface ConteudosPraticarArray {

 id_conteudo: string;
 nome_conteudo: string;
}

i am using the Observable method in the api to fill in the Praticarobject.

well the problem is he brings me Object and I can’t use it . :(

1 answer

1


Because the contents are of the Conteudospraticararray type[] (conteudos: ConteudosPraticarArray[];), and this last being an array of Objects, you need to access it as well as access the id_assunto of the Praticarobject Class for example.

Example:

export interface ConteudosPraticarArray {
    id_conteudo: string;
    nome_conteudo: string;
}
export interface PraticarObject {
    id_assunto: number;
    nome_assunto: string;
    qt_exercicios_concluidos: string;
    conteudos: ConteudosPraticarArray[];
}

To access the name of the content I must put:

/*Aqui abaixo, irei criar objetos para exemplificar, dependerá de como o seu código está*/
    var conteudo1 = new ConteudosPraticarArray (1,'Conteudo 1')
    var conteudo2 = new ConteudosPraticarArray (2,'Conteudo 2')
    var po = new PraticarObject(1,'Assunto Número 1', 15, [conteudo1,conteudo2])
/*AQUI A DEMONSTRAÇÃO DE COMO VOCÊ PODE RECEBER O VALOR "nome_conteudo" DOS CONTEÚDOS, E NÃO MAIS OBJETOS COMO ESTAVA ACONTECENDO*/
    console.log(po.conteudos[0].nome_conteudo) /*ESSA LINHA ME RETORNARÁ "Conteudo 1"*/
    console.log(po.conteudos[1].nome_conteudo) /*ESSA LINHA ME RETORNARÁ "Conteudo 2"*/

Browser other questions tagged

You are not signed in. Login or sign up in order to post.