Ciao Pietro
in Javascript l'operatore di assegnamento (=) applicato a due array non effettua una copia per valore ma per riferimento. Questo significa che le due variabili array puntano in realtà alla stessa locazione di memoria e quindi la modifica di un elemento di un array si ripercuote anche sull'altro.
Ecco un esempio sullo stile del tuo che conferma quanto detto:
var a = [1, 2, 3];
var b = [10, 20, 30];
function Button1_onclick()
{
copia_vettore(b);
}
function Button2_onclick()
{
// provo a modificare uno dei due vettori
b[0] = 100;
visualizza();
}
function copia_vettore( x )
{
a = x;
x = null;
}
function visualizza()
{
alert("a = " + a + "\nb= " + b);
}
al click sul secondo pulsante (dopo aver premuto il primo) viene mostrato
a = [100, 20, 30]
b = [100, 20, 30]
invece di
a = [10, 20, 30]
b = [100, 20, 30]
Quindi se si desidera copiare un array in Javascript per trattarlo come un nuovo array è opportuno che procedi come al tuo solito cioè:
1) creo un nuovo array
2) copio gli elementi di uno nell'altro
Spero di esserti stato di aiuto.