账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    树形结构数据如何删除空的子级节点?
    21
    0

    我有这样一组数据,想要递归删除掉所有 children 为空的节点,对于这组数据来说,最后删除完后,会得到空数据。

    但是我设计的方法好像行不通,请大家帮忙给我个思路,或者说帮忙指出我这段程序中有什么错误的地方,不胜感激:

    数据

    data = [
        {id: 1, label: '1-1', children: 
            [
                {id: 2, label: '1-2', children: []},
                {id: 3, label: '1-3', children: []},
            ]
        },
        {id: 4, label: '2-1', children: []},
    ];

    尝试的方法

    function getSelectedNode(nodeData, parent) {
      nodeData.forEach(item => {
        if ('children' in item && item.children.length === 0) {
          // 使用了lodash的删除方法
          lodash.remove(parent.children, o => {
            return o.id === item.id
          })
        } else if ('children' in item && item.children.length) {
          getSelectedNode(item.children, item);
        }
      })
    }
    getSelectedNode(data, data);
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部