javascript - 如何删除 C# 或 JavaScript 中的空节点?

标签 javascript c# serialization treeview parent-child

我正在尝试从 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/

相关文章:

json - 在 Node js 中使用 Avro 序列化数据

python - 类型错误 : Object of type 'datetime' is not JSON serializable (with serialize function)

javascript - 多维数组排序中的数学概念

javascript - 每 x 分钟运行一次 phantomjs 脚本

c# - 模拟管理系统?

c# - WndProc 将 lParam 挂接到 xy 线?

c++ - C++ 中的 XML 序列化/反序列化

javascript - 如何在下拉菜单中定位我的 h2 标题

javascript - 如何使用 jquery 在 html 上显示 ajax 列表响应?

c# - DateTime 解析包含一年中的某一天的字符串