Para clonar el contenido de cualquier arreglo, basta con llamar el método slice
disponible para los Array con cero (0) como argumento:
var mi_arreglo = [1,2,3,4,5];
var clon = mi_arreglo.slice(0);
console.log(clon);
Aunque no es recomendado, también puedes agregar el método clone al prototype de Array para hacer más intuitivo su uso:
Array.prototype.clone = function() {
return this.slice(0);
};
var mi_arreglo = [1,2,3,4,5];
var clon = mi_arreglo.clone();
console.log(clon);
Otra solución menos llamativa, es usar el método filter dejando pasar todos los elementos al nuevo arreglo:
var mi_arreglo = [1,2,3,4,5];
var clon = mi_arreglo.filter(o=>true);
console.log(clon);
La más sencilla si trabajas con javascript moderno o typescript:
var mi_arreglo = [1,2,3,4,5];
var clon = [... mi_arreglo];
console.log(clon);
Toma en cuenta de que si tu arreglo contiene objetos entonces las instancias serán las mismas en ambos objetos, la función no hace un clonado profundo del contenido.
¿Has visto gente recorrer y copiar manualmente el contenido de los arreglos? ¡Compártele este post!