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属性挂接在该节点下的。

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

猜你喜欢

转载自www.cnblogs.com/yanggb/p/12572124.html