Neste artigo você vai aprender a como copiar um array em JavaScript, e ainda não o copiaremos por referência, os dois arrays serão independentes

Como copiar um array em JavaScript capa

Fala programador(a), beleza? Bora aprender mais sobre JavaScript e arrays também!

Para copiar um array podemos utilizar o método slice, que em outras circunstâncias é utilizado para retirar elementos de um array

Porém neste caso vamos utilizá-lo sem parâmetros, então o array todo será retirado

E desta maneira conseguimos uma cópia independente, que não é de referência do array pai

Veja um exemplo prático da solução:

let a = ['a', 'b', 'c'];

let b = a.slice();

console.log(b); // ['a', 'b', 'c']

Veja que criamos um array e atribuimos a variável a

Depois criamos a variável b com o resultado do método slice em a

Desta maneira há agora dois arrays independentes no nosso programa, podemos alterar um sem afetar o outro

O que é um problema quando nós atribuimos um array de uma variável a outra, isso cria uma referência

Fazendo com que a alteração em um, reflita na outra lista

Conclusão

Neste artigo você aprendeu a como copiar um array em JavaScript, sem criar referência

Utilizamos o método de arrays slice, que é utilizado normalmente para fatiar arrays

Porém sem argumentos, ele retorna o array completo e origina uma cópia do original, fazendo com que o nosso objetivo seja atingido

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest

3 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Diego Rodrigues Góes

Eu sofri quando precisei copiar as informações de um array em outro, eu não sabia que eles ficavam linkados… E o que eu precisava era justamente que eles não tivessem essa característica. Não usei slice, fiz uma função para salvar um valor de cada vez. Obrigado pelo post, agora sei como resolver com apenas 1 linha de código. : )

Battisti

show Diego, que bom que pude te ajudar =)

thiago

Opa Matheus, blz? Pra alguns casos acho que o slice pode ter outro comportamento, me corrija se eu estiver errado, mas por exemplo: let a = [1,2,3] let b = a.slice() b[0] = 10 console.log(a) [ 1, 2, 3 ] console.log(b) [ 10, 2, 3 ] No caso acima, o slice funcionaria bem.. Porém no caso abaixo: let array1 = [ [ [10], [20], [30] ], [ [40], [50], [60] ] ]; defino um array pai, com 2 filhos e 3 netos let array2 = array1.slice() uso o slice para copiá-lo array2[0][0] = “mudou”; altero o primeiro índice do pai,… Read more »