Como você clona uma matriz de objetos em Javascript?
... onde cada objeto também tem referências a outros objetos na mesma matri
Quando surgiu esse problema, pensei em algo como
var clonedNodesArray = nodesArray.clone()
existiria e procurou informações sobre como clonar objetos em javascript. Eu encontrei umquestã no StackOverflow (respondido pelo mesmo @JohnResig) e ele apontou que com o jQuery você poderia fazer
var clonedNodesArray = jQuery.extend({}, nodesArray);
para clonar um objeto. Eu tentei isso, porém, isso apenas copia as referências dos objetos na matriz. Então, se eu
nodesArray[0].value = "red"
clonedNodesArray[0].value = "green"
o valor de nodesArray [0] e clonedNodesArray [0] será "verde". Então eu tentei
var clonedNodesArray = jQuery.extend(true, {}, nodesArray);
que copia profundamente um objeto, mas recebi " muita recursão "e"control stack overflow "mensagens do Firebug e do Opera Dragonfly, respectivamente.
Como você faria? Isso é algo que nem deveria ser feito? Existe uma maneira reutilizável de fazer isso em Javascript?