salve
domanda notturna,,,,
ho 2 array
arr_a
arr_b
all'inizio arr_a è vuoto. arr_b ha vari elementi
voglio memorizzare arr_b
quindi faccio
arr_a=arr_b
qualsiasi operazione faccio su arr_b mi si tramette su arr_a
come mai?
bonanotte per chi ce'![]()
salve
domanda notturna,,,,
ho 2 array
arr_a
arr_b
all'inizio arr_a è vuoto. arr_b ha vari elementi
voglio memorizzare arr_b
quindi faccio
arr_a=arr_b
qualsiasi operazione faccio su arr_b mi si tramette su arr_a
come mai?
bonanotte per chi ce'![]()
Riporta le due righe di codice che utilizzi.
var arr_a = new Array();
var arr_b = new Array("a","b","c");
trace("arr_a " + arr_a + " arr_b " + arr_b);
arr_a=arr_b;
trace("arr_a " + arr_a + " arr_b " + arr_b);
arr_b.splice(1,1);
trace("arr_a " + arr_a + " arr_b " + arr_b);
bene a questo punto questa operazione che ho fatto su arr_b mi si ripercuote anche su arr_a
cioe' anche ad arr_a viene tolto il 2 elemento.
eppure io ho posto
arr_a = arr_b prima di effettuare lo splice su arr_b
quindi?
Perché tu non popoli l'array A con i valori dell'array B ma semplicemente fai una referenza a B con A e quindi A e B è come se fossero due copie di uno stesso oggetto.
Se tu provi il seguente codice che invece popola A con i valori di B vedrai che non succede più questo "inconveniente".
codice:arr_a = []; arr_b = ["a","b","c"]; trace("arr_a " + arr_a + " arr_b " + arr_b); i = 0; for(var a in arr_b){ arr_a[i] = arr_b[i]; i++; } trace("arr_a " + arr_a + " arr_b " + arr_b); arr_a.splice(1,1); trace("arr_a " + arr_a + " arr_b " + arr_b);
grazie funxiona!![]()