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

如何编写一份网站开发需求文档怎么制作自己的网页网站

如何编写一份网站开发需求文档,怎么制作自己的网页网站,安徽省建设工程安全 协会网站,装修效果图软件app哪个好概览 在 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/252339/

相关文章:

  • 网站建设工作室 需要营业执照吗白山镇seo快速排名
  • discuz绿色带门户手机网站模板什么网站会更有浏览量
  • 设计网站过程做网站要求付全款
  • 南昌网站建设制作返利网站建设
  • 立水桥网站建设十大搜索引擎地址
  • 河南整站关键词排名优化软件网站地图提交给百度
  • 绵阳免费网站建设简约型网站建设
  • 做个免费的网站太原做网站公司哪家好
  • 郑州网站建设乛汉狮网络wordpress支持视频
  • 天津建设项目招投标网站网站开发会计科目
  • 企业网站设计与优化汽车网站建设费用
  • 装饰网站建设方案网络营销的内容主要包括哪些方面
  • 多语言网站建设php做网站步骤
  • 公司创建网站销售wordpress 256m内存
  • 网站宝二级域名怎么设置门户网站优化怎么做
  • 网站建设公司信息网站开发工具特点总结
  • 网站开发总结800字什么网站ppt做的最好看
  • 青岛海川建设集团有限公司网站wordpress音悦台
  • 在阿里巴巴上做网站要多少钱Saas和wordpress有什么区别
  • 网站微信建设运维培训班广州网站建设网站制作公司
  • 帮别人做网站被抓怀远网站建设哪家好
  • wordpress文章排序seo按天计费系统源码
  • 网站导航栏垂直wordpress系统邮件设置方法
  • 网站做直链下载存储解决方案福州市住房和城乡建设局官网
  • 网站建设职业发展前景公司网站推广方案
  • 深圳品牌学校网站建设网站建设总结心得
  • 外贸网站如何做推广是什么加强网站网络安全建设方案
  • 信产部网站备案免费个人简历表电子版
  • 辽宁网站建设价位seo在线优化平台
  • 5在线做网站沈阳新联会是什么组织做什么