决扁平数据递归炒的

var arr = [
  { id: '29', pid: '', name: '总裁办' },
  { id: '2c', pid: '', name: '财务部' },
  { id: '2d', pid: '2c', name: '财务核算部' },
  { id: '2f', pid: '2c', name: '薪资管理部' },
  { id: 'd2', pid: '', name: '技术部' },
  { id: 'd3', pid: 'd2', name: 'Java研发部' },
  { id: 'd4', pid: 'd3', name: 'spring研发部' },
]

/* 定义封装函数   */
function toDo(arr, pid = '') {
  /* 得到处理之后的树形数据 */
  var newArr = []
  /* 1-循环数组 */
  arr.forEach((item) => {
    if (item.pid === pid) {
      /* 3-收集不是第一层的   收集子集 */
      var child = toDo(arr, item.id)
      if (child.length) {
        item.children = child
      }
      // console.log(obj, 8)
      /* 2-筛选第一层 */
      newArr.push(item)
    }
  })
  return newArr
}
/* 调用函数 */
console.dir(toDo(arr))




/* 定义封装函数   */
function toDo(arr, pid = '') {
  /* 得到处理之后的树形数据 */
  var newArr = []
  /* 1-循环数组 */
  arr.forEach((item) => {
    if (item.pid === pid) {
      /* 3-收集不是第一层的   收集子集 */
      var child = toDo(arr, item.id)
      if (child.length) {
        item.children = child
      }
      // console.log(obj, 8)
      /* 2-筛选第一层 */
      newArr.push(item)
    }
  })
  return newArr
}
/* 调用函数 */
console.dir(toDo(arr))

你可能感兴趣的:(决扁平数据递归炒的)