Sto provando a creare una funzione che duplica una matrice di matrici. Ho provato blah.slice (0); ma copia solo i riferimenti. Devo fare un duplicato che lascia intatto l'originale.Come copiare o duplicare una matrice di array
Ho trovato questo metodo prototipo al http://my.opera.com/GreyWyvern/blog/show.dml/1725165
Object.prototype.clone = function() {
var newObj = (this instanceof Array) ? [] : {};
for (i in this) {
if (i == 'clone') continue;
if (this[i] && typeof this[i] == "object") {
newObj[i] = this[i].clone();
} else newObj[i] = this[i]
} return newObj;
};
Funziona, ma scombina un plugin jQuery che sto utilizzando - quindi ho bisogno di trasformarlo su una funzione ... e ricorsività non è il mio più forte.
Il vostro aiuto sarebbe apprezzato!
Cheers,
Assicurati di dichiarare "i" con 'var'! Inoltre è rischioso iterare su un array con un ciclo 'for ... in' - molto più sicuro usare indici numerici. – Pointy
Vedere: http://stackoverflow.com/questions/565430/deep-copying-an-array-using-jquery –