Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

É possível criar uma Array dentro de outra Array?

Estou trabalhando com um projeto paralelo ao curso, para já ir colocando em prática o que estou aprendendo. E me surgiu essa dúvida; "É possível criar uma Array dentro de outra Array?". Se sim, como eu faria isso?

2 respostas
solução!

Olá Thiago, tudo bem?

É possível sim, podemos colocar quantos arrays quisermos dentro da nossa estrutura!

Nesse sentido nós podemos trabalhar com array com a notação de chaves para ficar mais simples a visualização, no caso:

new Array( 1, 2, 3, 4, 5);

É a mesma coisa que: const array = [ 1, 2, 3, 4, 5]

Dessa maneira nosso array com outro array pode ser:

1. Maneira do Instrutor

new Array( 1 , new Array(2, 3) , 4, 5)

2. Maneira Literal

const array = [ 1,  [2, 3 ], 4, 5]

Eu iria sempre preferir a maneira literal, pois quem esta lendo o código tem uma melhor visibilidade dos dados :)

Tipicamente quando temos um array de arrays estamos trabalhando com matrizes por exemplo:

const matriz = [ [1, 2], [3, 4]]

Aqui temos uma matriz de 2x2 para pegar valores iremos utilizar duas vezes o símbolo de [], por exemplo:

matriz[0][1]

Primeiro elemento (0) da matriz mais externa, no caso [1, 2], depois segundo elemento (1) da matriz interna, no caso 2

matriz[1][1]
-> 4

E podemos percorrer da seguinte maneira:

const array = [ 1, [2, 3], 4, 5, [6, 7, 8, 9, 10]]
const matriz = [ [1, 2], [3, 4]]

for(let i = 0; i < array.length; i++){
    for( let j = 0; j < array[i].length; j++){
        console.log(`Posição ${i} e Posição ${j}`)
        console.log(`Valor da posição array[${i}][${j}]: ${array[i][j]}`)
    }
}

Aqui você pode substituir no laço for onde está array por matriz, para ver as duas execuções, mas terá algo parecido com:

No exemplo da matriz

Posição 0 e Posição 0 
Valor da posição array[0][0]: 1 
Posição 0 e Posição 1
Valor da posição array[0][1]: 2 
Posição 1 e Posição 0 
Valor da posição array[1][0]: 3 
Posição 1 e Posição 1 
Valor da posição array[1][1]: 4
`

No exemplo do array

Posição 1 e Posição 0
Valor da posição array[1][0]: 2 
Posição 1 e Posição 1 
Valor da posição array[1][1]: 3 
Posição 4 e Posição 0 
Valor da posição array[4][0]: 6 
Posição 4 e Posição 1 
Valor da posição array[4][1]: 7 
Posição 4 e Posição 2 
Valor da posição array[4][2]: 8 
Posição 4 e Posição 3 
Valor da posição array[4][3]: 9
Posição 4 e Posição 4 
Valor da posição array[4][4]: 10
`

Veja que quando o elemento é apenas um número e não outro array ele não entra dentro do segundo for :)

Conseguiu Compreender? Qualquer coisa estou à disposição!

Abraços e Bons Estudos =D

Cara, isso ficou muito bem detalhado. Consegui compreender sim, o exemplo de laço também me ajudou muito, pois pretendia fazer um no meu projeto e estava pensando em como fazer. Muito obrigado pela ajuda!