From 357988c7967328932dbba30fb1d8543630f9b50d Mon Sep 17 00:00:00 2001 From: AYELance <2463168510@qq.com> Date: Sat, 24 Apr 2021 00:59:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0menu-tree=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=20=E5=89=8D=E7=AB=AFdelete=E8=8A=82=E7=82=B9=E6=96=B9=E6=B3=95?= =?UTF-8?q?fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/menu-tree/treeNode.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/components/menu-tree/treeNode.js b/src/components/menu-tree/treeNode.js index 5a1686e..eb1d1a2 100644 --- a/src/components/menu-tree/treeNode.js +++ b/src/components/menu-tree/treeNode.js @@ -407,14 +407,21 @@ function getParentIdWithLeaf(arrayAllIds, treeNodeArray, arrayChildrenIds) { } //前端对节点delete 递归 返回修改后的treeArray -export function deleteNode(id, treeArray) { - //array用于递归的地址传递 - let array = treeArray; - if (array && array.length) { - for (let i = 0, len = array.length; i < len; i++) { - array.slice(array.findIndex(item => item.id === id), 1); - return deleteNode(id, array[i].menuChild); +export function deleteNode(id, root) { + // console.log(typeof(root.id)+"==="+typeof(id)); + if (root.id+"" === id) { + // undefined 不是关键字,可能会被重新赋值 + return void 0; + } + for (let i = 0; i < root.menuChild.length; i++) { + // arguments.callee 可以降低一次耦合 + let res = deleteNode(id, root.menuChild[i]); + // console.log("res==="+JSON.stringify(res)); + if (res) { + root.menuChild[i] = res; + } else { + root.menuChild.splice(i, 1) } } - return array; + return root; } -- Gitee