... где каждый объект также имеет ссылки на другие объекты внутри одного массива?
Когда я впервые столкнулся с этой проблемой, я просто что-то вроде
var clonedNodesArray = nodesArray.clone()
будет существовать и искать информацию о том, как клонировать объекты в javascript. Я нашел question в StackOverflow (ответил тот же @JohnResig), и он указал, что с помощью jQuery вы можете сделать
var clonedNodesArray = jQuery.extend({}, nodesArray);
чтобы клонировать объект. Я попробовал это, но это копирует ссылки на объекты в массиве. Поэтому, если I
nodesArray[0].value = "red"
clonedNodesArray[0].value = "green"
значение обоих узловArray [0] и clonedNodesArray [0] окажется "зеленым". Затем я попробовал
var clonedNodesArray = jQuery.extend(true, {}, nodesArray);
который глубоко копирует объект, но я получил сообщения "слишком много рекурсии" и "переполнение стека" из Firebug и Opera Dragonfly соответственно.
Как бы вы это сделали? Разве это не должно быть сделано? Есть ли способ повторного использования этого в Javascript?