使用递归遍历实现删除数据

//原数组
const data = ref([
  {
    key: 1,
    name: "John Brown sr.",
    age: 60,
    address: "New York No. 1 Lake Park",
    index:1,
    children: [
      {
        key: 11,
        name: "John Brown",
        age: 42,
        address: "New York No. 2 Lake Park",
        index:11,
      },
      {
        key: 12,
        name: "John Brown jr.",
        age: 30,
        address: "New York No. 3 Lake Park",
        index:12,
        children: [
          {
            key: 121,
            name: "Jimmy Brown",
            age: 16,
            address: "New York No. 3 Lake Park",
            index:121,
          },
        ],
      },
      {
        key: 13,
        name: "Jim Green sr.",
        age: 72,
        address: "London No. 1 Lake Park",
        index:13,
        children: [
          {
            key: 131,
            name: "Jim Green",
            age: 42,
            address: "London No. 2 Lake Park",
            index:131,
            children: [
              {
                key: 1311,
                name: "Jim Green jr.",
                age: 25,
                address: "London No. 3 Lake Park",
                index:1311,
              },
              {
                key: 1312,
                name: "Jimmy Green sr.",
                age: 18,
                address: "London No. 4 Lake Park",
                index:1312,
              },
            ],
          },
        ],
      },
    ],
  },
  {
    key: 2,
    name: "Joe Black",
    age: 32,
    address: "Sidney No. 1 Lake Park",
    index:2,
  },
]);




//使用递归方法   //I 相当于数据 

const onDelete= (l,key)=> {
  const index = l.findIndex(child => child.key === key);
  if (index !== -1) {
    l.splice(index, 1);
  } else {
    l.forEach(child => {
      onDelete(child.children, key);
    }); 
  }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 二叉树和树的基本概念 二叉树是一种特殊的树形数据结构,每个节点最多只有两个子节点,分别称为左子节点和右子节点。树是由节点和边组成的,其中树的顶部节点称为根节点,而树的最底部节点称为叶节点。 2. 二叉树的存储结构 二叉树可以使用链式存储方式或顺序存储方式。链式存储方式是通过指针来连接每个节点,顺序存储方式是通过数组来存储每个节点的值,可以使用完全二叉树的方式来存储。 3. 二叉树的基本算法 (1)二叉树的遍 二叉树的遍方式包括前序遍、中序遍和后序遍。其中前序遍是指先遍根节点,再遍左子树,最后遍右子树;中序遍是指先遍左子树,再遍根节点,最后遍右子树;后序遍是指先遍左子树,再遍右子树,最后遍根节点。 (2)二叉树的查找 二叉树的查找可以使用归算法或非归算法。归算法是通过比较节点值来判断遍方向,非归算法可以使用栈或队列来实现。 (3)二叉树的插入和删除 二叉树的插入和删除操作可以通过归算法或非归算法来实现。插入操作可以先进行查找操作,再将节点插入到合适的位置;删除操作需要分为三种情况:删除叶子节点、删除只有一个子节点的节点和删除有两个子节点的节点。 (4)二叉树的非归遍算法 二叉树的非归遍算法可以使用栈来实现。以前序遍为例,首先将根节点入栈,然后弹出栈顶节点并输出,再将右子节点入栈,最后将左子节点入栈。重复以上操作,直到栈为空。中序遍和后序遍可以使用类似的方式实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值