行业知识
蓝桥杯题练习:平地起高楼
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}
上一篇:监控主机怎么删除
下一篇:共享服务器怎么共享文件?