Forzar JavaScript para realizar una copia profunda de una cadena
- ¿Qué es la copia profunda?
- Cómo copiar una cadena en JavaScript
- Cómo hacer una copia profunda de una cadena en JavaScript
Este artículo discutirá qué es una copia profunda, cómo copiar una cadena y una copia profunda de una cadena en JavaScript. También abordaremos la diferencia clave entre ellos.
¿Qué es la copia profunda?
En una copia profunda, todo el objeto de cadena se duplica y se almacena en otro objeto de cadena. Todo el contenido del objeto de cadena original se copia y almacena en el nuevo objeto de cadena.
Sin embargo, en la copia, la dirección original se almacena y se accede a ella cada vez que accedemos al objeto de cadena copiado.
Cómo copiar una cadena en JavaScript
Cuando copia una cadena, su dirección se almacena en la variable de cadena especificada en JavaScript. Veamos este segmento de código para comprender mejor el concepto.
let original_string = 'Hello';
var string_copy = (' ' + original_string).slice(1);
En este segmento de código, como puede ver, había una variable llamada original_string
, que tenía un valor de cadena Hello
.
La cadena original se usa como referencia después de un espacio ' '
. Esta concatenación da como resultado una copia de cadena en la implementación del navegador.
Cómo hacer una copia profunda de una cadena en JavaScript
En la explicación mencionada del segmento de código de copia profunda, hemos utilizado una función de prototipo de cadena llamada segmento, así que expliquemos primero la función de prototipo slice()
.
El método slice
se usa en JavaScript para recuperar una parte de una cadena como una nueva cadena sin cambiar la cadena original. Veamos este segmento de código donde hemos usado slice()
:
let str = 'Sliced_String';
let res = str.slice(0, 5);
console.log(res);
Producción :
Slice
Los primeros cinco caracteres de la cadena se han extraído y mostrado en la consola como salida. Tenga en cuenta aquí que los argumentos aquí están indexados 0
; por lo tanto, el sexto carácter no se extrae.
Alternativamente, no puede proporcionar ningún argumento que devuelva la cadena completa como una cadena nueva.
Ahora, regrese a la explicación de la copia profunda.
Como se mencionó anteriormente, la copia profunda en JavaScript duplica todo el objeto de cadena de JavaScript y lo almacena en una constante o variable de cadena específica. Veamos este segmento de código en el que hemos copiado en profundidad un objeto de cadena de JavaScript en una constante.
const str = 'I am showing an example';
const new_str = str.slice();
console.log(new_str);
En el segmento de código anterior, el programa no usará la referencia de la cadena original sino que copiará cada carácter de la cadena original en la nueva variable de cadena.
Como se explicó anteriormente, la función slice()
extrajo la cadena completa de la constante str
y la devolvió como una nueva cadena a la constante new_str
. Esta nueva constante se mostró como salida en la última línea del segmento de código usando un console.log()
.