javascript移除树形列表(带children的对象数组)中的元素


在树表(带children的对象数组)操作中,如果删除的操作是在前端完成(不请求后台,等所有树表操作完成之后统一保存)的话,就会需要封装一个删除树表节点的逻辑函数。

function removeTreeListItem(treeList, id) { // 根据id属性从数组(树结构)中移除元素
  if (!treeList || !treeList.length) {
    return
  }
  for (let i = 0; i < treeList.length; i++) {
    if (treeList[i].id === id) {
      treeList.splice(i, 1);
      break;
    }
    removeTreeListItem(treeList[i].children, id)
  }
}

在上面封装的这个函数中,逻辑是通过遍历treeList中id匹配的对象,并递归每个对象children属性(也是一个对象数组)来完成删除元素的逻辑。要注意的是,如果某个被删除的节点下还带有子节点的话,其下的全部节点会被同步移除,因为这些子节点是作为children属性挂接在该节点下的。

 

"删除我一生中的任何一个瞬间,我都不能成为今天的自己。"


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM