Javascript: How to pick up an array of objects within a child of an array of objects

Asked

Viewed 412 times

-1

I have the following example object:

const empresa = {
    nome: 'Tal tal',
    endereco: 'taltaltal',
    groupos: [
        {
        nome: 'taltaltal',
        codenome: 'tal',

        as: [
            {
                nome: 'grupo a',
                apelido: 'ga'
            },
            {
                nome: 'grupo a',
                apelido: 'ga'
            },
            {
                nome: 'grupo a',
                apelido: 'ga'
            },
            {
                nome: 'grupo a',
                apelido: 'ga'
            },
        ]
    },
    {
        nome: 'taltaltal',
        codenome: 'tal',

        as: [
            {
                nome: 'grupo a',
                apelido: 'ga'
            },
            {
                nome: 'grupo a',
                apelido: 'ga'
            },
            {
                nome: 'grupo a',
                apelido: 'ga'
            },
            {
                nome: 'grupo a',
                apelido: 'ga'
            },
        ]
    },
    {
        nome: 'taltaltal',
        codenome: 'tal',

        as: [
            {
                nome: 'grupo a',
                apelido: 'ga'
            },
            {
                nome: 'grupo b',
                apelido: 'gb'
            },
            {
                nome: 'grupo c',
                apelido: 'gc'
            },
            {
                nome: 'grupo d',
                apelido: 'gd'
            },
        ]
    },
],

}

I would like to take the array of groups->as objects :

grupos: [
   ...
   as: {
      ...
   }
]

2 answers

1

Following the structure of the company const.

If you want to get them all as of the list groupos:

for (let grupo of empresa.groupos) { 
    console.log(grupo.as);
}

If you want to filter by group codename:

for (let grupo of empresa.groupos) { 
   if (grupo.codenome === "tal") {
      console.log(grupo.as);
      break;
   }
}

You can also get the list item using the position Dice:

console.log(empresa.groupos[0].as);

There is also the good old for basic loop:

for (let indice = 0; indice < empresa.groupos.length; indice++) {
    const grupo = empresa.groupos[indice];
    console.log(grupo.as);
}

There are also other ways to scan an array other than for...of at this link

-1

You can create an array only with the elements as:

var grupos = [];

$.each(empresa.groupos, function(index, element) {
    grupos.push(element.as);
});

Browser other questions tagged

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