递归树形json数组,查找所有父节点,展开父节点,删除子节点

  • 递归json数组,查找所有父节点,展开父节点
  • 删除子节点
// 查找子节点的所有父节点
getParentNode (arr1, id) {
  let getNodeArr= []
  const forFunc = function (arr, id) {
    for (let i = 0; i < arr.length; i++) {
      let getNodeArr= arr[i]
      if (item.id === id) {
        getNodeArr.push(item)
        forFunc(arr1, item.parentId)
        break
      } else {
        if (item.children) {
          forFunc(item.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)
    }
  }
}

你可能感兴趣的:(前端,vue)