![]() |
|
||||||||||
|
|||||
|
[+4 06.08.07]
Регистрация: Aug 2002
Сообщений: 44
|
Есть дерево объектов, которое получено в результате парсинга XML.
Дерево неопределённой структуры. node1.node2.....nodeX node1.nodeA.....nodeY Неопределённое количество ветвей и узлов. Вне надо клонировать одну ветвь, что-то вроде: tmp = node1.node2; Нужен именно дубликат, т.к. с самим деревом будут производиться трансформации. Всё написано на AS2. Подскажите, как сделать клон объекта/ветви? Последний раз редактировалось bettrrr; 04.09.2007 в 15:22. |
|
|||||
|
|
|
|||||
|
[+4 06.08.07]
Регистрация: Aug 2002
Сообщений: 44
|
Цитата:
Зря я написал про XML. Это просто дерево объектов, неопределённой структуры, вида -----------obj--------------
| | |.....
obj2 obj4
| |
obj3 ----obj5-----
| | |
objX objY objZ
И мне надо скопировать одну из ветвей (например obj5) |
|
|||||
|
[+4 06.08.07]
Регистрация: Aug 2002
Сообщений: 44
|
и ещё, специально отдельным сообщением для модератора:
я ошибся в первом посте, когда написал про AS3, это опечатка! Скрипт на AS2 |
|
|||||
|
'только не в лотерею, а в карты, не машину а сто рублей, и не выиграл, а проиграл..'
![]() только не AS3 и не XML.. тогда можно рекурсией обойти нод, как-то так: function cloneObj(obj){
var clone={};
var cont=0;
for( var i in obj){
clone[i]=cloneObj(obj[i]);
cont++;
}
return cont ? clone : obj;
}
var tree={node1:{node11:{node111:111,node112:112},node12:12},node2:{node22:22}};
var node=tree.node1;
nodeCopy=cloneObj(node);
node.node11.node111="XXX";
trace(nodeCopy.node11.node111);//111
|
|
|||||
|
[+4 06.08.07]
Регистрация: Aug 2002
Сообщений: 44
|
Цитата:
неужели в языке, который претендует на роль объектно-ориентированного языка нет механизма клонирования объектов??? |
|
|||||
|
Цитата:
Цитата:
![]() |
|
|||||
|
[+4 06.08.07]
Регистрация: Aug 2002
Сообщений: 44
|
Цитата:
![]() |
|
|||||
|
Регистрация: May 2004
Адрес: Москва
Сообщений: 76
|
Цитата:
but only for flex project ![]()
__________________
Улыбка - понятие растяжимое... Последний раз редактировалось Ieshua; 13.09.2007 в 16:50. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Чего прикажете с темой делать? Двигать отсюдова или оставить? Вот, честно, я не знаю, чего с ней делать.
В следующий раз выбирайте разделы правильно. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|