如何在没有迭代数组的情况下从$ scope中删除对象?

时间:2015-09-09 14:35:27

标签: javascript arrays angularjs object

所以,我有jsfiddle here

我们可以添加新节点并删除父节点中的所有子节点。但是如何在没有迭代数组的情况下删除特定的子节点?我知道我们可以使用:

Array.prototype.splice()

如果我们想删除这个对象(截图#1),我们可以得到它的索引并使用splice()。

enter image description here

但是如果我想删除深层嵌套的对象,我不想要迭代数组并使用splice(),因为性能。

enter image description here

在我的控制台中我只得到:

Object { name: "Node-8-6-2", menu: false, $$hashKey: "object:151" }

而且我无法访问父阵列的节点。我需要迭代所有数组,以便我可以删除它。

有人知道这个问题的解决方案吗?

1 个答案:

答案 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);