Es posible. Quizá hasta cubra arrays bidimensionales. Pero sería mejor poner el ejemplo completo, para probarlo.
En realidad yo preguntaba por uno común y corriente.
Y esperaba la respuesta en otro tema, pero ya que estamos acá, aprovecho y aclaro un poco más de dónde vino mi pregunta.
Si tengo un array, y lo copio en otro
Código:
var unArray= ["perro", "gato"];
var otroArray = [];
otroArray = unArray;
Y después quiero modificar el nuevo en uno solo de sus elementos
resulta que me queda
Código:
var unArray= ["perro", "kiwi"];
var otroArray = ["perro", "kiwi"];
¡Me cambia también el primero!
Seguramente ya se habló de esto por acá, pero voy a dejar una explicación de otro sitio, porque fue lo primero que encontré
http://www.anieto2k.com/2007/03/11/c...en-javascript/
Allí resolvieron el asunto como hice más arriba
Código:
<script type="text/javascript">
var a = [ 1, 2, 3 ];
var b = [].concat(a);
b[1]="w";
//alert(a+" "+b)
</script>
o con un método similar al que estás proponiendo, que metieron en un
prototype. Acá lo dejo simplificado
Código:
<script type="text/javascript">
var alfa = [80,10,20,30];
var bravo = [4,5,6];
function duplica_alfa_en_bravo(){
bravo=[]; //vacía bravo
for(i in alfa) { //recorre todo alfa
bravo.push(alfa[i]); //agregando cada elemento a bravo
alert(alfa[i])
alert("["+i+"] "+bravo)
}
//una vez duplicado
alert(alfa+" = "+bravo)
bravo[1] = "X"; //reemplaza sólo 2º elemento de bravo
alert(alfa+" = "+bravo) //pero no modifica alfa
}
onload = duplica_alfa_en_bravo;
</script>
Insisto en que debería haber un modo mejor,
me cachen yavascrip.