Cómo copiar elementos de matriz en JavaScript

Cómo copiar elementos de matriz en JavaScript
Javascript ofrece varios métodos para Copiar elementos de matriz. Las matrices en JavaScript pueden comprender objetos, referencias y valores primitivos. Cuando tiene el tipo primitivo de datos, la tarea de copiar elementos de matriz es bastante simple; Sin embargo, cuando se trata de objetos y referencias, debe seleccionar entre el Poco profundo y Copia profunda procedimientos cuidadosamente.

Cuando existen referencias en una matriz, la copia superficial solo copia las direcciones de referencia. Entonces, si realiza algunos cambios en una copia, la modificación también se reflejará en la otra copia; Como se comparten las ubicaciones de la memoria. Puede clonar los elementos de la matriz utilizando una copia profunda para evitar esta situación.

Este artículo discutirá los métodos para copiar elementos de matriz en JavaScript con la ayuda de ejemplos apropiados.

Cómo copiar elementos de matriz en JavaScript

Las matrices de JavaScript se consideran como tipos de referencia lo que significa que si asigna una matriz a otra matriz usando el operador de asignación "=", Solo asignará la referencia de la matriz original y no copiará los elementos de la matriz.

Después de la asignación de referencia, cuando agregue o modifique los elementos de la segunda matriz, los elementos de la primera matriz también se verán afectados. Puede tener una mejor comprensión con la ayuda del siguiente ejemplo:

Ejemplo

Por ejemplo, hemos creado una matriz llamada "aves"Tener los siguientes elementos:

var pájaros = ['Parrot', 'cuervo'];

En el siguiente paso, intentaremos asignar "aves" hacia "novatos"Array usando el"="Operador de asignación:

var newbirds = pájaros;
consola.log (newbirds);

Después de eso, agregaremos un nuevo elemento al "novatosArray con la ayuda del método JavaScript Push ():

novatos.Push ('Pigeon')

Por último, mostraremos los elementos del "aves" y "novatos"Elementos de matriz en la ventana de la consola:

consola.log (pájaros);
consola.log (newbirds);

La salida dada por debajo significa que cuando se ha copiado el "aves"Elementos de matriz utilizando el operador de asignación"=", Los cambios realizados posteriormente se aplican a ambas matrices:

En este punto, ha entendido que las matrices se consideran valores de referencia en JavaScript, por lo que cuando usa el operador de asignación, solo se copiará la referencia de la matriz original, no los elementos de la matriz.

En JavaScript, puede usar el "Copia superficial" o "Copia profunda"Métodos para copiar elementos de matriz. Hacer estos términos suenan nuevos para ti? No hay problema! Los explicaremos en las siguientes secciones.

Copia superficial en JavaScript

Una copia de un objeto se llama copia poco profunda.

  • En una copia superficial, se crea un nuevo objeto que tiene una copia exacta de los valores de objeto especificados.
  • La copia superficial se usa principalmente para copiar el elemento de primer nivel, lo que significa que solo puede clonar los elementos de un dimensional o Matriz 1D.
  • Si el objeto original contiene alguna referencia, solo se copiarán las direcciones de referencia.

El Operador de propagación […], rebanada(), y concat () Los métodos le permiten los elementos de matriz de copias poco profundas en JavaScript.

Copia profunda en JavaScript

Si desea copiar los elementos de una matriz multidimensional, debe realizar la operación de copia profunda para copiar los elementos de la matriz originales.

El término "Copia profunda"Se refiere a un procedimiento de copia recursiva. En primer lugar, crea una nueva colección de objetos y luego copia recursivamente los elementos de matriz especificados. Entonces, podemos decir que, en el caso de la copia profunda, una matriz completa de JavaScript se copia o se clona en otra matriz, y copia el primer nivel y todos los elementos anidados de una matriz multidimensional.

Json.Stringify () y Json.analizar gramaticalmente() Los métodos se utilizan para copiar una matriz multidimensional, donde el JSON.El método Stringify () convertirá el objeto especificado en cadena, que puede convertir en matriz con la ayuda de JSON.método parse ().

Ahora, veremos algunos ejemplos prácticos para copiar matrices individuales y multidimensionales con los métodos de copia superficiales y profundos mencionados.

Cómo copiar elementos de matriz en JavaScript utilizando el operador spread

En JavaScript, el "desparramarEl operador se puede usar para copiar o difundir los elementos de la matriz. Tres puntos consecutivos ""Representa al operador de propagación. Recuerde que el operador spread solo copiará los elementos de la matriz en el nivel uno, y los elementos anidados se pasan como referencias.

Sintaxis del operador spread para copiar elemento de matriz

var array2 = [... array1];

Aquí, el operador spread copiará los elementos de "matriz1" a "matriz2".

Ejemplo: Cómo copiar elementos de matriz en JavaScript usando el operador de spread

En primer lugar, crearemos una nueva matriz llamada "aves"Tener dos elementos:"Loro" y "Cuervo":

var pájaros = ['Parrot', 'cuervo'];

Entonces, copiaremos el "aves"Elementos de matriz para"novatos"Array:

var newbirds = [... pájaros];
consola.log (newbirds);

Además, puede verificar si agregar un nuevo elemento en el "novatos"Array modificará el"aves"Array o no:

novatos.Push ('Pigeon')
consola.log (newbirds);
consola.log (pájaros);

Como puede ver en la salida, hemos copiado con éxito el "aves"Elementos de matriz para"novatos"Array, y empujando nuevos elementos a"novatos"No ha aplicado ningún cambio en el"aves"Array:

Cómo copiar elementos de matriz en JavaScript usando el método SLICE ()

El método JavaScript Slice () se utiliza para copiar elementos de matriz en otro objeto o matriz. La matriz original no se modificará en el caso de usar el método SLICE ().

Sintaxis del método SLICE () para copiar elementos de matriz

var array2 = array1.rebanada();

Según la sintaxis, el método SLICE () copiará los elementos de ""matriz1" en "matriz2".

Ejemplo: Cómo copiar elementos de matriz en JavaScript usando el método SLICE ()

En el ejemplo dado a continuación, utilizaremos el "rebanada()"Método para copiar el"aves"Elementos de matriz para"novatos"Array:

var pájaros = ['Parrot', 'cuervo'];
var newbirds = pájaros.rebanada();
consola.log (newbirds);

Ahora, presionando nuevos elementos en el "novatos"Array no modificará el"aves"Array:

novatos.Push ('Pigeon')
consola.log (newbirds);
consola.log (pájaros);

Aquí está el resultado que obtuvimos al ejecutar el programa anterior:

De la salida dada anteriormente, se puede ver claramente que agregar elementos en el "novatos"La matriz no ha afectado los elementos del"aves"Array.

Cómo copiar elementos de matriz en JavaScript usando el método concat ()

"concat ()"Es otro método útil de JavaScript que puede ayudarlo a copiar elementos de matriz. En el método concat (), puede tomar una matriz vacía y copiar los elementos de la matriz originales. Creará una copia nueva de la matriz especificada.

Sintaxis del método concat () para copiar elementos de matriz

var array2 = [].concat (array1);

En la sintaxis anterior, el método concat () copiará el "matriz1"Elementos en una matriz vacía [], y luego el resultado se almacenará en" "matriz2".

Ejemplo: cómo copiar elementos de matriz en JavaScript usando el método concat ()

Ahora, usaremos el JavaScript "concat ()"Método para copiar los elementos del"aves"Array a"novatos":

var pájaros = ['Parrot', 'cuervo'];
var newbirds = [].concat (pájaros);
consola.log (newbirds);

A continuación, lo haremos empujar un nuevo elemento para "novatos"Array y verifique si se actualiza el"aves"Array también:

novatos.Push ('Pigeon')
consola.log (newbirds);
consola.log (pájaros);

Eche un vistazo a la salida dada de abajo:

Como puede ver en la salida anterior, presionando nuevos elementos en el "novatos"Array no ha modificado el"aves"Array.

Cómo copiar elementos de matriz multidimensionales en JavaScript

Si desea copiar elementos de una matriz multidimensional, puede utilizar el JSON.stringify () y json.métodos de parse (). El json.El método Stringify () convertirá el objeto especificado en una cadena, que se puede convertir en una matriz con la ayuda de JSON.método parse ().

Sintaxis para copiar elementos de matriz multidimensional

var array2 = json.analizar.Stringify (Array1));

En primer lugar, el "Json.Stringify ()"El método se convertirá"matriz1"Para caducar y luego lo analizará a una matriz (objeto) usando el"Json.analizar gramaticalmente()" método. Los elementos de matriz devueltos se copiarán a "matriz2".

Ejemplo: Cómo copiar elementos de matriz multidimensionales en JavaScript

En este ejemplo, hemos usado el JSON.stringify () y json.PARSE () Métodos para copiar los elementos de multidimensional "aves"Array a"novatos":

var birds = [name: 'Parrot', name: 'curow'];
var Newbirds = JSON.analizar.Stringify (Birds));
consola.log (newbirds);

La salida dada anteriormente significa que hemos copiado con éxito los elementos del "aves"Array a"novatos".

Conclusión

Operador de propagación "[...]", rebanada(), y concat () los métodos le permiten poco profundo Copiar 1D elementos de matriz en JavaScript y para profundo Copiar matrices multidimensionales, Json.Stringify () y Json.analizar gramaticalmente() se utilizan métodos, donde el JSON.El método Stringify () convertirá el objeto especificado en cadena, que se puede analizar a la matriz con JSON.método parse (). Este artículo sobre los métodos para copiar elementos de matriz en JavaScript.