当前位置: 首页 > news >正文

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

题目要求

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
}

http://www.lryc.cn/news/307842.html

相关文章:

  • 我愿意启动价值流
  • 排序算法1:冒泡排序、快速排序、插入排序
  • Vant Weapp
  • 无人机精准定位技术,GPS差分技术基础,RTK原理技术详解
  • java面试:elasticsearch
  • GO语言学习笔记(与Java的比较学习)(三)
  • 如何用Python3自撰一个简单的后端框架
  • 使用pyannote-audio实现声纹分割聚类
  • 防御保护:防火墙内容安全
  • uni-app webview 打开baidu.com
  • 【C#】SixLabors.ImageSharp和System.Drawing两者知多少
  • 总是 -bash: gomobile: 命令未找到
  • day27【LeetCode】454. 四数相加 II
  • UE5 UE4 不同关卡使用Sequence动画
  • 【JAVA日志】关于日志系统的架构讨论
  • 云计算与边缘计算:有何不同?
  • 「连载」边缘计算(二十)02-23:边缘部分源码(源码分析篇)
  • Swagger接口文档管理工具
  • 关于HTML5表单验证的方法教程
  • .NET生成MongoDB中的主键ObjectId
  • BeautifulSoup+xpath+re+css简单复习+新的scrapy的学习
  • Python爬虫实战:从API获取数据
  • 音频转换器哪个好?3款电脑软件+3款手机应用
  • 惯性导航 | 运动学---运动模型
  • Java Web(十一)--JSON Ajax
  • GL/gl.h: No such file or directory(CentOS8 QT5.12.12)
  • 【外设篇】-显示器
  • 可视化图文报表
  • CW023A-H035 CW023A-R230铜合金硬度材质书
  • Ribbon负载均衡:提升应用性能与可靠性的秘密武器(一)