Мне нужно клонировать дерево, которое я сделал, используя TreeModel.js. Что мне нужно сделать, это дублировать его, вносить в него изменения и проверять, уменьшилось ли количество узлов. Если это так, вернитесь к исходному дереву. Вот небольшой пример того, что я до сих пор, чтобы дублировать его, что не является правильным:Клонирование дерева JS TreeModel
var tree = new TreeModel();
var root = tree.parse({
id: 0,
name: "Root",
children: [{id: 1, name: "1", children: []},{id: 2, name: "2", children: []}]
});
console.log(root)
var dup = tree.parse(root)
console.log(dup)
Вот Fiddle. Вы увидите разницу между деревьями, глядя на консоли:
Node {config: Object, model: Object, children: Array[2], isRoot: function, hasChildren: function…}
Node {config: Object, model: Node, children: Array[2], isRoot: function, hasChildren: function…}
Есть ли способ, чтобы правильно клонировать такую структуру? Я искал клонирование объекта JS, но все же, я не могу найти способ клонирования этого объекта в точности (например, прототипы таких свойств, как модель ...)
Ты тот, кто написал эту библиотеку правильно? Тогда есть ли разница с простое выполнение: 'tree.parse (root.model);'? – Johy
Да. И да, я только что отредактировал ответ, чтобы прояснить это. – JNS
Фантастический. Большое вам спасибо за библиотеку и за этот ответ. ;-) – Johy