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

建网站公司销售做co的网站

建网站公司销售,做co的网站,全球推广,太原网站建设的公司排名1.树形数组扁平化 数组扁平化的方式很多#xff0c;这里主要是用递归处理#xff0c;除此之外还有正则、扩展运算符等等 const list [{name:1,id:1,children:[{name:11,id:11,children:[{name:111,id:111}]},{name:12},]},{name:2,id:2,children:[{name:21,id:21,children:…1.树形数组扁平化 数组扁平化的方式很多这里主要是用递归处理除此之外还有正则、扩展运算符等等 const list [{name:1,id:1,children:[{name:11,id:11,children:[{name:111,id:111}]},{name:12},]},{name:2,id:2,children:[{name:21,id:21,children:[{name:221,id:221}]},{name:22,id:22},]},]// 树形数组扁平化const test (arr){const list []if(arr instanceof Array){for (let i 0; i arr.length; i) {const item arr[i];if(item.children item.children.length0){list.push(...test(item.children))//将每一层的结果push到list}delete item.children//视情况而定是否删除children属性list.push(item)}}return list}console.log(test(list,扁平化)); 2.树形数组格式化修改节点key值  使用for改变原数组的方式 // 树形数组递归格式化数组使用for改变原数组const format (arr){if(arr instanceof Array){for (let i 0; i arr.length; i) {const ele arr[i];ele.label ele.name;ele.value ele.id;delete ele.name;delete ele.id;if(ele.children ele.children.length0){format(ele.children);}}return arr}} 使用能生成新数组的方式 // 树形数组递归格式化数组使用forEach不改变原数组const format2 (arr){if(arr instanceof Array){return arr.map(item {item.label item.name;item.value item.id;delete item.name;delete item.id;if(item.children item.children.length0){format2(item.children);}return item});}} 3.获取树形数组中某个节点的所有父级节点 这个方式需要熟悉函数在堆栈中的调用顺序才好理解否则理解起来有点绕 const list [{name:1,id:1,children:[{name:11,id:11,children:[{name:111,id:111}]},{name:12},]},{name:2,id:2,children:[{name:21,id:21,children:[{name:221,id:221}]},{name:22,id:22},]},] const getParentId (arr,id){for (let i 0; i arr.length; i) {const item arr[i]if(item.idid){return [item]}if(item.children item.children.length0){let node getParentId(item.children,id);//当当前item的有返回数组时则表示已经找到目标id节点item二级node三级// node表示目标节点而当前item则是第二次执行getParentId函数的item因为第三次调用的getParentId函数在堆栈中被(return)去除掉了if(node!undefined){return node.concat(item);//这里每return一次堆栈就会去除一次最顶层函数}}}}// js函数调用堆栈js每执行一个函数就会往堆栈放一个函数如果函数执行完或者return之后就会从堆栈剔除堆栈遵循先进后出的顺序// 执行顺序每执行一次函数往堆栈里面放一个函数// 执行函数getParentId(),往堆栈里面放一个函数// 第一遍代码执行到let node getParentId(item.children,id)的时候执行递归于是跳到函数getParentId的开头执行第二遍再放一个函数在堆栈// 第二次执行到let node getParentId(item.children,id)时候跟第一次一样继续执行递归函数getParentId再放一个函数在堆栈// 第三次执行的时候item.idid于是return掉当前的函数// 而当前是第三次执行的函数return之后当前函数就从堆栈中去除了堆栈只剩两个函数了(第一次执行的getParentId函数跟第二次执行getParentId函数)// 于是继续执行第二个getParentId它不会从头开始而是从第二次递归后面那里因为之前在这结束调转到函数开头的所以继续从这里执行开始执行// 发现node!undefined成立于是将第二个getParentId函数return掉从堆栈中去除// 去除之后堆栈中只剩第一次执行的getParentId函数此时不会从头开始执行而是继续在第一次递归调用那里往后执行因为之前在这结束调转到函数开头的所以继续从这里执行最终返回函数的结果
http://www.hkea.cn/news/14579012/

相关文章:

  • 现代示范校建设专题网站在线代理的网站
  • 上市公司网站建设wordpress分享服务器目录
  • 网站更改备案主体聊城手机网站
  • 自己买空间做网站潜江做网站的
  • 无锡网站制作优化推广公司摄影网站的意义
  • 网站建设 乐达云创在网站和网页的区别
  • 个人网站建设计划报告团员建设网站
  • 网站开发专业简历模板做美篇发网站
  • 西宁做网站好的公司学校资源网站建设目标
  • 音乐网站手机模板建设很行官方网站
  • 东莞网站推广团队拓展如何在网上推广
  • 广告设计图片大全 图片素材百度推广优化师是什么
  • 后台建设电商网站手机网站 微信
  • 嘉兴做微网站设计宁波网站建设系统介绍
  • 深圳公司注册的服务机构seo排名教程技术
  • 徐州建筑工程招投标网站服务器运行一段时间网站打不开
  • 茂名营销型网站建设微信公众号网站开发模板
  • 网站seo诊断分析建立门户网站的意义
  • 珠海多语种网站制作小公司没网站
  • 中山建设招聘信息网站工程合同范本通用版
  • 如何进入优容网站潍坊网站建设服务商
  • 企业网站制作规划做网站需要好多图片
  • php构建网站电子商务主要学什么就业方向工资
  • 东胜区教育网站入口网站建设微信版
  • 上海网站建设公司兴田德润放心产品设计流程
  • 免费的网站推广方法网站后台管理系统软件
  • 夏县做网站企业做网站的好处
  • 网站开发常用的技术官网申请
  • 如何自助建网站包头网站建设哪家好
  • 礼品网站建设策划产品推荐词