Я использую угловую библиотеку treeNode с 6 простыми номерами.
Я хотел создать копию на узле, который имеет более 1000 дочерних элементов.
Но когда я пытаюсь добиться того же с помощью рекурсивного вызова, это приводит к увеличению максимального размера стека вызовов.
Может кто-нибудь помочь мне решить эту проблему.
createCopyOfTreeNode(originalTreeNode, parentTreeNode?) {
const duplicateTreeNodeData = $.extend(true, {}, originalTreeNode.data);
const duplicateTreeNode = new TreeNode();
duplicateTreeNode.label = originalTreeNode.label;
duplicateTreeNode.icon = originalTreeNode.icon;
duplicateTreeNode.assetType = originalTreeNode.assetType;
duplicateTreeNode.expandedIcon = originalTreeNode.expandedIcon;
duplicateTreeNode.collapsedIcon = originalTreeNode.collapsedIcon;
duplicateTreeNode.leaf = originalTreeNode.leaf;
duplicateTreeNode.selectable = originalTreeNode.selectable;
duplicateTreeNode.data = duplicateTreeNodeData;
if (parentTreeNode) {
if (!parentTreeNode.children) {
parentTreeNode.children = [];
}
parentTreeNode.children.push(duplicateTreeNode);
}
if (originalTreeNode.children && originalTreeNode.children.length > 0) {
setTimeout(() => {
originalTreeNode.children.forEach(originalTreeNodeChild => {
this.createCopyOfTreeNode(originalTreeNodeChild, duplicateTreeNode);
});
}, 0);
}
return duplicateTreeNode;
}