所以,我有jsfiddle here。
我们可以添加新节点并删除父节点中的所有子节点。但是如何在没有迭代数组的情况下删除特定的子节点?我知道我们可以使用:
Array.prototype.splice()
如果我们想删除这个对象(截图#1),我们可以得到它的索引并使用splice()。
但是如果我想删除深层嵌套的对象,我不想要迭代数组并使用splice(),因为性能。
在我的控制台中我只得到:
Object { name: "Node-8-6-2", menu: false, $$hashKey: "object:151" }
而且我无法访问父阵列的节点。我需要迭代所有数组,以便我可以删除它。
有人知道这个问题的解决方案吗?
答案 0 :(得分:1)
在构建嵌套树时,可以向数组添加parent
属性:
var parentNode = [];
var node = [];
node.parent = parentNode;
parentNode.push(node);
现在,如果你想删除node
,你可以说:
var index = node.parent.indexOf(node);
node.parent.splice(index, 1);