Il seguente codice fa sì che entrambi gli elementi di id 0
siano impostati su -
, anche se voglio che sia impostato su -1
. Sto solo creando un riferimento al labelArray, o è qualcos’altro?
labelArray.sort(compare); valueArray = labelArray; valueArray[0] = '-1'; labelArray[0] = '-';
Tutto l’aiuto è apprezzato.
Sì. valueArray
e labelArray
riferimento allo stesso array sottostante. Per fare una copia, usa slice () :
valueArray = labelArray.slice(0);
NOTA: Slice () copia solo 1 livello in profondità, che funziona bene per gli array primitivi. Se la matrice contiene oggetti complessi, usa qualcosa come clone di jQuery () , credit @Jonathan.
Sto solo creando un riferimento al labelArray […]?
Si, esattamente. valueArray
e labelArray
identificano ancora lo stesso object, che non è stato copiato.
valueArray
è solo un riferimento a labelArray
.
Quello che vuoi fare è clonare l’array. Puoi farlo usando jQuery.clone () o una funzione di clonazione simile.