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属性挂接在该节点下的。
"删除我一生中的任何一个瞬间,我都不能成为今天的自己。"
你要去做一个大人,不要回头,不要难过。