El operador de propagación en ES6 se usa para clonar una array, mientras que el método slice() en JavaScript es una forma más antigua que proporciona 0 como primer argumento. Estos métodos crean una nueva array independiente y copian todos los elementos de oldArray en la nueva, es decir, ambos métodos hacen una copia superficial de la array original.
Sintaxis:
// Older way var clonedArray= oldArray.slice(0) // ES6 way: spread operator var clonedArrayES6= [...oldArray]
Ejemplo:
<script> // Cloning array using spread // operator- ES6 const oldArray= ["dog1", "dog2", "dog3"]; const clonedArrayES6= [...oldArray]; // ["dog1", "dog2", "dog3"] console.log(clonedArrayES6); </script>
Producción:
Igualdad e igualdad: a diferencia del operador «=», que crea una nueva variable que solo apunta a la array original en lugar de copiar sus elementos, el operador de distribución crea una nueva array clonada, con una referencia diferente pero con los mismos valores. Por lo tanto, el operador «=» crea una copia profunda de la array original, pero el operador de extensión hace una copia superficial. La array creada por el operador de propagación tiene el mismo valor que la array anterior, pero no es igual a la array anterior.
Ejemplo:
<script> // Equality and sameness in cloning array const oldArray= ["dog1", "dog2", "dog3"]; const clonedArrayES6 = [...oldArray]; const newArray = oldArray; // False, i.e. shallow copy console.log(clonedArrayES6===oldArray) // True, i.e. deep copy console.log(newArray === oldArray) </script>
Producción:
Nota: Todos los ejemplos anteriores se pueden probar escribiéndolos dentro de la etiqueta de secuencia de comandos de HTML o directamente en la consola del navegador.
Publicación traducida automáticamente
Artículo escrito por Srishtibajpai y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA