Quando as referências existem em uma matriz, a cópia rasa copia apenas os endereços de referência. Portanto, se você fizer algumas alterações em uma cópia, a modificação também refletirá na outra cópia; Como os locais de memória são compartilhados. Você pode clonar os elementos da matriz usando cópia profunda para evitar esta situação.
Este artigo discutirá os métodos para copiar elementos da matriz em JavaScript com a ajuda de exemplos apropriados.
Como copiar elementos da matriz em JavaScript
Matrizes de JavaScript são considerados como Tipos de referência O que significa que se você atribuir uma matriz a outra matriz usando o operador de atribuição “=”, Ele atribuirá apenas a referência da matriz original e não copiará os elementos da matriz.
Após a tarefa de referência, ao adicionar ou modificar os elementos da segunda matriz, os primeiros elementos da matriz também serão afetados. Você pode entender melhor com a ajuda do seguinte exemplo:
Exemplo
Por exemplo, criamos uma matriz chamada “pássaros”Tendo os seguintes elementos:
vars vars = ['Parrot', 'Crow'];Na próxima etapa, tentaremos atribuir “pássaros" para o "Newbirds”Array usando o“=”Operador de atribuição:
var newbirds = pássaros;Depois disso, adicionaremos um novo elemento ao “Newbirds”Array com a ajuda do método javascript push ():
Newbirds.push ('pombo')Por fim, exibiremos os elementos do “pássaros" e "Newbirds”Os elementos da matriz na janela do console:
console.log (pássaros);A saída abaixo do ritmo significa que, quando copiou o “pássaros”Elementos da matriz utilizando o operador de atribuição“=”, As mudanças feitas depois são aplicadas a ambas as matrizes:
Neste ponto, você entendeu que as matrizes são consideradas valores de referência em JavaScript; portanto, quando você usa o operador de atribuição, apenas a referência da matriz original será copiada, não os elementos da matriz.
Em JavaScript, você pode usar o “Cópia rasa" ou "Cópia profunda”Métodos para copiar elementos de matriz. Estes termos soam novos para você? Sem problemas! Nós os explicaremos nas próximas seções.
Cópia superficial em javascript
Uma cópia de um objeto é chamada de cópia rasa.
O Operador espalhado […], fatiar(), e concat () Os métodos permitem que você os elementos rasos da matriz de cópias em JavaScript.
Cópia profunda em javascript
Se você deseja copiar os elementos de uma matriz multidimensional, você deve executar a operação de cópia profunda para copiar os elementos da matriz original.
O termo "Cópia profunda”Refere -se a um procedimento de cópia recursiva. Em primeiro lugar, ele cria uma nova coleção de objetos e depois copia recursivamente os elementos de matriz especificados. Assim, podemos dizer que, no caso de cópia profunda, uma matriz JavaScript completa é copiada ou clonada em outra matriz e copia o primeiro nível e todos os elementos aninhados de uma matriz multidimensional.
JSON.stringify () e JSON.Parse () Os métodos são utilizados para copiar uma matriz multidimensional, onde o JSON.O método stringify () converterá o objeto especificado em string, que você pode converter para matar com a ajuda do JSON.Método parse ().
Agora, vamos conferir alguns exemplos práticos para copiar matrizes únicas e multidimensionais com os métodos de cópia superficial e profunda mencionados.
Como copiar elementos da matriz em JavaScript usando o operador de spread
Em JavaScript, o “espalhar”O operador pode ser usado para copiar ou espalhar os elementos da matriz. Três pontos consecutivos “.. ”Representa o operador de spread. Lembre -se de que o operador de spread copiará apenas os elementos da matriz no nível um, e os elementos aninhados são passados como referências.
Sintaxe do operador de propagação para copiar o elemento de matriz
var Array2 = [… Array1];Aqui, o operador de spread copiará os elementos de “Array1" para "Array2”.
Exemplo: Como copiar elementos de matriz em JavaScript usando o operador de spread
Primeiro de tudo, criaremos uma nova matriz chamada “pássaros"Tendo dois elementos:"Papagaio" e "Corvo”:
vars vars = ['Parrot', 'Crow'];Então, vamos copiar o “pássaros”Elementos da matriz para“Newbirds" variedade:
var newbirds = [… pássaros];Além disso, você pode verificar se adicionar um novo elemento no “Newbirds”Array modificará o“pássaros”Array ou não:
Newbirds.push ('pombo')Como você pode ver na saída, copiamos com sucesso o “pássaros”Elementos da matriz para“Newbirds”Array, e empurrando novos elementos para“Newbirds“Não aplicaram nenhuma alteração no“pássaros" variedade:
Como copiar elementos da matriz em javascript usando o método slice ()
O método JavaScript Slice () é utilizado para copiar elementos da matriz em outro objeto ou matriz. A matriz original não será modificada no caso de usar o método Slice ().
Sintaxe do método slice () para copiar elementos da matriz
var Array2 = Array1.fatiar();De acordo com a sintaxe, o método slice () copiará os elementos de “Array1" em "Array2”.
Exemplo: como copiar elementos da matriz em javascript usando o método slice ()
No exemplo abaixo, utilizaremos o “fatiar()”Método para copiar o“pássaros”Elementos da matriz para“Newbirds" variedade:
vars vars = ['Parrot', 'Crow'];Agora, empurrando novos elementos no “Newbirds”A matriz não modificará o“pássaros" variedade:
Newbirds.push ('pombo')Aqui está a saída que obtemos ao executar o programa acima:
A partir da saída acima, pode-se ver claramente que adicionar elementos no “Newbirds”A matriz não afetou os elementos do“pássaros" variedade.
Como copiar elementos da matriz em javascript usando o método concat ()
““concat ()”É outro método JavaScript útil que pode ajudá -lo a copiar elementos de matriz. No método concat (), você pode pegar uma matriz vazia e copiar os elementos da matriz original para ele. Ele criará uma nova cópia da matriz especificada.
Sintaxe do método concat () para copiar elementos da matriz
var Array2 = [].Concat (Array1);Na sintaxe acima, o método concat () copiará o “Array1”Elementos em uma matriz vazia [], e então o resultado será armazenado em“Array2”.
Exemplo: como copiar elementos da matriz em javascript usando o método concat ()
Agora, usaremos o JavaScript “concat ()”Método para copiar os elementos do“pássaros”Array para“Newbirds”:
vars vars = ['Parrot', 'Crow'];Em seguida, nós iremos empurrar Um novo elementos para “Newbirds”Array e verifique se ele atualiza o“pássaros”Array também:
Newbirds.push ('pombo')Dê uma olhada na saída abaixo:
Como você pode ver na saída acima, empurrando novos elementos no “Newbirds”A matriz não modificou o“pássaros" variedade.
Como copiar elementos de matriz multidimensional em JavaScript
Se você deseja copiar elementos de uma matriz multidimensional, pode utilizar o JSON.stringify () e json.Métodos parse (). O json.O método stringify () converterá o objeto especificado em uma string, que pode ser convertida em uma matriz com a ajuda do JSON.Método parse ().
Sintaxe para copiar elementos de matriz multidimensional
var Array2 = JSON.Parse (JSON.stringify (array1));Em primeiro lugar, o “JSON.stringify ()”O método será convertido“Array1”Para amarrar e então ele analisará a uma matriz (objeto) usando o“JSON.Parse ()”Método. Os elementos de matriz devolvidos serão então copiados para “Array2”.
Exemplo: como copiar elementos de matriz multidimensional em JavaScript
Neste exemplo, usamos o JSON.stringify () e json.Métodos parse () para copiar os elementos de multidimensional “pássaros”Array para“Newbirds”:
var birds = [name: 'parrot', name: 'Crow'];A saída acima mencionada significa que copiamos com sucesso os elementos do “pássaros”Array para“Newbirds”.
Conclusão
Operador espalhado “[…]”, fatiar(), e concat () Métodos permitem que você raso cópia de 1d elementos de matriz em JavaScript e para profundo copiando matrizes multidimensionais, JSON.stringify () e JSON.Parse () Métodos são utilizados, onde o JSON.O método stringify () converterá o objeto especificado em string, que pode ser analisado para matar com JSON.Método parse (). Este artigo discutiu os métodos para copiar elementos de matriz em JavaScript.