【JS】原生js递归实现数组转换为树形结构数据

// 递归实现:把服务器传来的数组数据转换为树形结构的数据 
    // [{1},{1.1},{1.2},{2},{3}] => [{ 1,children:[{1.1},{1.2}] },{2},{3}]
    export function switchToTreeData(list, rootValue) {
      const arr = []
      if (list.length) {
        list.forEach(item => {
          // 用pid来区分其双亲节点的id 确定自己所在的分级层次
          if (item.pid == rootValue) {
            // 自己的位置确定了 向下寻找自己的子节点 把rootValue置为自己的id值
            const childrenArr = switchToTreeData(list, item.id)
            if (childrenArr.length) {
              // 如果有子节点存在 新增一个children属性
              item.children = childrenArr
            }
            arr.push(item)
          }
        })
        return arr
      }
    }

猜你喜欢

转载自blog.csdn.net/Andye11/article/details/129115092