数据转换为树结构数据//---通过一个id回显下拉树数据

  //数据转换为树结构数据

  TreeStructure(data) {
    let result = [];
    if (!Array.isArray(data)) {
      return result;
    }
    data.forEach(item => {
      delete item.children;
    });
    let map = {};
    data.forEach(item => {
      map[item.id] = item;
    });
    data.forEach(item => {
      let parent = map[item.parentId];
      if (parent) {
        (parent.children || (parent.children = [])).push(item);
      } else {
        result.push(item);
      }
    });
    return {
      result
    };
  },
// 通过一个id回显下拉树数据 findFullId(childrenArr, val) { let out = false; //定义一个标识(是否找到对应的id) let bg = 0; //定义一个标杆(标识循环到当前数组的第几条) for (let item of childrenArr) { if (item.id === val) { //判断所在数组(层级),是否有与之匹配的id arr.push(item.id); //存在则返回其id out = true; //存在就将标识设置为true return; //递归出口(出口1) } else if ( //判断id不匹配的层级是否具有下级目录(children) item.children && item.children.length > 0 ) { arr.push(item.id); findFullId(item.children); //存在下级目录就将下一级目录回调 } bg++; if (out) return; //如果找到对应的id 就执行返回 (出口2) if (bg === childrenArr.length && arr && arr.length > 0) { arr = []; //如果在最后一个数组对象都没有找到对应ID 那么就清空数组 } } return arr; },

  

posted @ 2022-05-11 11:06  想吃水煮麻辣鱼  阅读(72)  评论(0编辑  收藏  举报