Pegar um array dentro do array

Olá galera!

Como consigo pegar só o array de dentro de um array.

Array:

[
  { id: 1, nome: "Texto 01", arr: [{ id: 2, nome: "Texto 02" }, { id: 3, nome: "Texto 03" }] },
  { id: 4, nome: "Texto 04", arr: [{ id: 5, nome: "Texto 05" }, { id: 6, nome: "Texto 06" }] }
]

Ficar assim:

[
   {arr: [{ id: 2, nome: "Texto 02" }, { id: 3, nome: "Texto 03" }]},
   {arr: [{ id: 5, nome: "Texto 05" }, { id: 6, nome: "Texto 06" }]}
]

Uma dica para eu melhorar com Javascript também é bem vinda <3, obrigada!

Você precisa primeiro entender a estrutura de forma geral, a partir daí fica mais fácil saber o que fazer.

O que temos é um array (delimitado por [ ]), e ele tem dois elementos:

[ <-- delimita um array

  // primeiro elemento do array
  { id: 1, nome: "Texto 01", arr: [{ id: 2, nome: "Texto 02" }, { id: 3, nome: "Texto 03" }] },

  // segundo elemento do array
  { id: 4, nome: "Texto 04", arr: [{ id: 5, nome: "Texto 05" }, { id: 6, nome: "Texto 06" }] }

] <-- fim do array

Então você quer criar outro array, sendo que cada elemento tem somente a chave arr dos elementos originais. Ou seja:

const dados = [
  { id: 1, nome: "Texto 01", arr: [{ id: 2, nome: "Texto 02" }, { id: 3, nome: "Texto 03" }] },
  { id: 4, nome: "Texto 04", arr: [{ id: 5, nome: "Texto 05" }, { id: 6, nome: "Texto 06" }] }
];

const result = [];
// para cada elemento do array
for (const item of dados) {
    // pega somente a chave "arr" e adiciona nos resultados
    result.push({ arr: item.arr });
}

Outra opção, usando map:

const result = dados.map(function(item){
    return { arr: item.arr };
});

No caso, map recebe uma função que é executada para cada elemento do array original. E esta função retorna um objeto contendo somente a chave arr.

1 curtida