我正在尝试从 C# 列表中删除空节点。我正在尝试制作一个类似 TreeView 的结构,但由于某些问题,我需要删除该节点,并且该节点为空。
var tree = [{
Id: 1,
text: "Parent 1",
ParentId: 0
nodes: [{
Id: 2,
text: "Child 1",
ParentId: 1
nodes: [{
Id: 3
text: "Grandchild 1",
ParentId: 2,
nodes: []
},
{
Id: 4,
text: "Grandchild 2",
ParentId: 2,
nodes: []
}
]
},
{
Id: 5
text: "Child 2",
ParentId: 1,
nodes: []
}
]
},
{
Id: 6,
text: "Parent 2",
ParentId: 0
nodes: []
}
];
如何删除 C# 或 JavaScript 中的空节点?
最佳答案
要从对象中删除属性,您可以使用 delete operator .
要从树
中删除空节点
,您可以递归地循环遍历树,并在长度
时删除节点
code> 为零,请参见以下内容:
var tree = [
{
id: 1,
nodes: [
{
id: 2,
nodes: [
{
id: 3,
nodes: []
}
]
},
{
id: 4,
nodes: []
}
]
},
{
id: 5,
nodes: []
}
];
function traverse(obj) {
for (key in obj) {
if (!!obj[key] && typeof(obj[key])=="object") {
if(key==="nodes"){
var nodesLen = obj[key].length;
if(nodesLen == 0){
delete obj[key];
}
}
traverse(obj[key]);
}
}
}
console.log("BEFORE");
console.log(tree);
traverse(tree);
console.log("AFTER");
console.log(tree);
希望对你有帮助。再见
关于javascript - 如何删除 C# 或 JavaScript 中的空节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43200402/