递归json数组,查找所有父节点,展开父节点删除子节点 // 查找子节点的所有父节点 getParentNode (arr1, id) { let getNodeArr= [] const forFunc = function (arr, id) { for (let i = 0; i < arr.length; i++) { if (arr[i].id === id) { getNodeArr.push(arr[i]) forFunc(arr1, arr[i].parentId) break } else { if (arr[i].children) { forFunc(arr[i].children, id) } } } } forFn(arr1, id) return getNodeArr } // 展开子节点的所有父节点 const temp = this.getParentNode(arr, parentId) for (let i of temp) { i.expand = true } // 递归删除子节点 loopDel (arr, item) { for (let i = 0; i < arr.length; i++) { if (item.id == arr[i].id) { arr.splice(i, 1) return } if (arr[i].children && arr[i].children.length > 0) { this.loopDel(arr[i].children, item) } } }