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