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

初做淘宝客选哪个网站百度发布信息的免费平台

初做淘宝客选哪个网站,百度发布信息的免费平台,线下推广方式,移动端网站定制概览 在 JavaScript 中,递归是一种编程技术,指的是函数直接或间接调用自身的过程。 递归通常用于解决可以分解为相同子问题的问题。通过不断地将问题分解成更小的、相似的子问题,直到达到某种基本情况(不再需要进一步递归的简单情…

概览

在 JavaScript 中,递归是一种编程技术,指的是函数直接或间接调用自身的过程。
递归通常用于解决可以分解为相同子问题的问题。通过不断地将问题分解成更小的、相似的子问题,直到达到某种基本情况(不再需要进一步递归的简单情况)。

递归一般要满足以下两个关键条件:

  1. 存在基本情况(终止条件):必须有某种简单的情况,在这种情况下递归不再继续进行,避免无限递归导致程序崩溃。
  2. 能够不断将问题规模缩小:通过递归调用自身,要能逐步将问题转化为更小的、相似的子问题,直到最终达到基本情况。

一. 常见应用

  1. 递归计算阶乘
function factorial(n) {if (n === 0 || n === 1) {return 1;} else {return n * factorial(n - 1);}
}

当递归终止后,从内到外依次执行。

  1. 一维数组转成树形结构
const arr = [{id: 4, pid: 3},{id: 'aa', pid: 'a'},{id: 1, pid: null},{id: 3, pid: 2},{id: 'a', pid: 'a0'},{id: 2, pid: 1},{id: 'a0', pid: null}
];function buildTreeData(arr,parentId = null) {const result = [];const rootFilterArray = arr.filter(item => item.pid === parentId);debugger;if(rootFilterArray.length > 0 ) {rootFilterArray.forEach(subitem => {debugger;const children = buildTreeData(arr,subitem.id);if(children.length > 0 ) {subitem.children = children}result.push(subitem)});}return result
}const resData = buildTreeData(arr);
console.log(resData,'resData')
  1. 查找树形结构子项
const checkTestData = [{"id": 1,"pid": null,"children": [{"id": 2,"pid": 1,"children": [{"id": 3,"pid": 2,"children": [{"id": 4,"pid": 3,"children": []}]}]}]},{"id": "a0","pid": null,"children": [{"id": "a","pid": "a0","children": [{"id": "aa","pid": "a","children": []}]}]}
]function getItemById(arr,id) {for(let item of arr) {debugger;if(item.id === id) {return item} else if(item.children) {const data = getItemById(item.children,id);if(data) {return data}}}
}const resDataItem = getItemById(checkTestData,3);
console.log(resDataItem,'resDataItem')

二. 总结

关键点梳理:

  1. 递归终止条件确定: 即没有调用自身的函数。
  2. 递归终止后结果的获取:有的时候直接返回最终的递归结果,有的时候拿到每次递归的结果之后由内至外依次进行逻辑处理。
http://www.yayakq.cn/news/558327/

相关文章:

  • dede产品展示网站模板卖酒网站排名
  • 传奇新开网站优化什么
  • 江西网站开发多少钱seo方法图片
  • h5网站开发的文献综述重庆国外网站推广
  • 天津企业模板建站哪个好网站建设收费标准资讯
  • 高端制作网站技术四川省住房和城乡建设厅网站是多少
  • 网站栏目变了怎么做跳转网站整合营销推广
  • 做网站如何分页软件开发工程师绩效考核
  • 南城网站建设公司如何网站注销
  • 杭州最大的网站开发深圳北站设计者
  • 网站类型分类国内最大的网站建设公司排名
  • 很简单的网站wordpress侧边浮动
  • 做培训网站海阳seo排名优化培训
  • 陕西省建设网三类人员证书查询系统烟台做网站优化哪家好
  • 门户营销型网站创业商机网农村
  • 免费推广网站入口2022wordpress如何发送邮件
  • 侨联 文化宣传 侨联网站建设加盟推广公司
  • 白云区网站建设mg126北京 建公司网站要多少钱
  • 国办网站建设规范腾讯云网站搭建
  • 微信群推广佣金平台网站seo三要素
  • 益阳学校网站建设北京专业网站制作介绍
  • 巨野做网站的建设一个购物网站流程
  • 莆田专业网站建设公司青岛官网seo技术厂家
  • 口碑好的定制网站建设公司哪家好wordpress 注册图片
  • 做百度网站找谁企业网站的建设公司价格
  • 重庆大足网站建设网站建设丿金手指下拉
  • 怎么做学校网站和微信公众号效果图参考网站有哪些
  • 制作一个专门浏览图片的网站项目推广计划书
  • 外贸建站推广公司成华网站制作
  • 如何建立一个网站公司网站的具体步骤