Copiar Matriz Javascript

| | | | | | | | | | | | | | | | | | | | | |

Em JavaScript , copiar uma matriz não é tão fácil quanto usar o operador de atribuição (=) para criar uma duplicata . Se você já tentou isso antes, ficará surpreso ao descobrir que ele apenas vincula à lista original. Qual é o problema?

Neste guia, explicaremos como copiar um array JavaScript. Vamos dar uma olhada no código de três estratégias de cópia de arrays JavaScript para que você possa começar a copiar arrays.

O problema de copiar arrays JavaScript

Em um nível, o " = & Rdquo; O operador cria uma cópia de uma array em uma nova variável . No entanto, isso é mais um ponteiro do que uma cópia. Isso ocorre porque o operador "=" cria uma referência a uma matriz original. Ele não cria uma duplicata da tabela existente.

Vamos tentar crie uma cópia de um array usando o operador de atribuição sem nenhum outro código:

Nosso o código retorna:

Eu t parece que nossa tabela foi copiada. "Fruit" contém todos os valores ‚Äã‚Äãdo nosso array "berries" .

Agora vamos tentar adicionar um elemento à pasta do array "fruits":

Adicionamos "Melon" à série de frutas. Em seguida, imprimimos os valores ‚Äã‚Äãpara "frutas" e "frutas" no console:

Tanto "frutas" quanto "frutas" contêm os mesmos valores. Isso ocorre porque tecnicamente não clonamos nossa baía. Acabamos de criar uma referência para este.

Cada vez que manipulamos o array "berries" , as alterações serão feitas no campo do array "fruits" .

Como copiar um array JavaScript

O operador de atribuição não copia um array. Temos que usar outra abordagem. Para nossa sorte, existem muitas maneiras de fazer uma cópia de uma pintura. As três abordagens principais são:

Vamos discuta-o um por um.

Usando o operador spread

O operador spread é um recurso introduzido no JavaScript ES6. Ele fornece acesso ao conteúdo de . um iterável Este operador é frequentemente usado para faça uma cópia superficial de um array

O operador spread tem três pontos como uma elipse (& hellip;).. Vamos criar uma cópia do nosso array "berries" de antes:

Usamos o operador spread para criar uma cópia do nosso array. Verificamos os valores ‚Äã‚Äãem nossos arrays t o verifique se estão corretos:

Nosso código retorna:

O valor " Melão " Foi adicionado apenas a "frutas" Carrier. Na verdade, usamos o operador broadcast para criar um vetor duplicado "berries". Agora a tabela "frutas" é sua própria tabela. Seus valores são separados pelas tabelas "berry" .

usando um loop

o comprovado, o uso de um loop for é uma boa maneira de criar uma cópia de uma pintura .

Isso O método pode não ser preferido como um operador de propagação porque requer várias linhas de código. No entanto, um loop for copia um objeto.

Declaramos duas listas: berries e frutas. Fruits é inicialmente uma lista vazia. Usamos um loop for para percorrer todos os elementos do l iste "berries" . Para cada item da lista, o valor é copiado para a pasta do array "fruit" .

Vamos executar nosso teste para ver se nossos arrays estão separados:

Nosso código retorna:

Sucesso! "Berries" e "fruit" são duas tabelas separadas.

Usando Array.from ()

O método Array.from () transforma qualquer objeto iterável em um array. através de cada elemento de um iterável e o adiciona a um novo array. Isso significa que ele pode ser usado para copiar um array.

Vamos crie uma cópia do nosso array "berries" novamente:

Esta solução, como a sintaxe do operador spread, requer apenas duas linhas de código. É uma solução eficiente e maneira concisa de copiar uma tabela. Agora vamos executar um teste para verificar nossos novos arrays:

Nosso código retorna:

Nossas tabelas foram copiadas com sucesso.

Conclusão

Copiar uma matriz em JavaScript é fácil quando você sabe como fazê-lo.

O operador de atribuição não é suficiente para copiar uma matriz se você deseja criar uma versão separada de uma matriz. Isso ocorre porque o operador de atribuição cria um ponteiro para uma matriz existente; não cria uma nova tabela.

Você pode criar uma cópia de um array usando o operador spread, um loop for ou o método Array.from () . Agora você está pronto para copiar tabelas em JavaScript como um especialista.