小工具知识网

当前位置: 首页 > 行业知识 > 蓝桥杯题练习:平地起高楼

行业知识

蓝桥杯题练习:平地起高楼

2026-10-30 10:27:43 来源:互联网转载

题���要求

function convertToTree(regions, rootId = "0") {  // TODO: 在这里写入具体的实现逻辑  // 将平铺的结构转化为树状结构,并将 rootId 下的所有子节点数组返回  // 如果不存在 rootId 下的子节点,则返回一个空数组}module.exports = convertToTree; // 检测需要,请勿删除

题目链接就不放了

1.关键核心,children就是   子类pid == 父类id

function convertToTree(regions, 父类id) {  let newArr = []    //存满足需求的值  regions.forEach((item)=>{    if(item.pid == rootId){          newArr.push(item)    //如果找到了就存起来    }  })                       //如果没找到就返回空数组  return newArr}

2.第一代由于没有父类,我们可以默认父类id为0

3.第二代开始我们让rootId等于父类id就行

function convertToTree(regions, rootId = "0") {  let newArr = []  regions.forEach((item)=>{    if(item.pid == rootId){      newArr.push(item)      item.children = convertToTree(regions , item.id)    }                    //将找到的值赋给子类  })  return newArr}

4.我们也可以使用slice过滤掉已经检测过的数组

function convertToTree(regions, rootId = "0") {  let newArr = []  regions.forEach((item , i)=>{    if(item.pid == rootId){      newArr.push(item)      item.children = convertToTree(regions.slice(i) , item.id)    }                    //将找到的值赋给子类  })  return newArr}

上一篇:监控主机怎么删除

下一篇:共享服务器怎么共享文件?