javascript - 怎么学会递归?
问题描述
感觉难以理解,有好多建议吗?
问题解答
回答1:看看我之前对一个递归问题的回答. 函数的实现功能方面理解递归不知道对你有没有帮助.
回答2:简单的理解就是:函数调用自身。
合格的递归要有结束条件。
明白这2点,就OK了。
回答3:要想学会递归,首先要学会递归。
递归就是包子馅的包子,极限是馒头。
给出一个正常的代码示例:
假设我们想要遍历一个【嵌套的】数据结构,如【DOM 元素的 children 属性还是同类型的 DOM 元素】,这时就会使用到最简单而常见的递归:函数调用自己,一层层解开嵌套,这只需要一两行 JS 即可实现:
function walk (node) { // 先打印出本节点的值 console.log(node.value) // 对每个 child 调用自身 node.children.forEach(child => walk(chid))}// 简单的树形嵌套数据结构示例const tree = { value: 1, children: [ { value: 2, children: [] }, { value: 3, children: [{ value: 4, chilren: [] }] }, { value: 5, children: [] } ]}// 遍历该树形数据结构walk(tree)回答4:
递归其实不难理解,我举个例子,6层高的楼,只有一层有苹果,我们在任何一层找到苹果,都会停止。。查找一次都会出现2个结果,做判断需要不需要往下找,往下找就是重复第一个过程,这就是递归。
回答5:int i;int function a(i){ if (i < 2) return a(i+1); else return i;}a(0); //执行后返回2
上面代码便于理解没写标准,递归就是调用自己形成嵌套.因为只有一个return语句,所以调用a(0)后我们可以这样看:嵌套进去:
a(0)->a(a(0+1))->a(a(1))a(a(a(1+1)))->a(a(a(2)))
在回来:
a(a(a(2)))->a(a(2))a(a(2))->a(2)a(2)->2回答6:
一个老司机的经验:多练多悟
相关文章:
1. 网页爬虫 - python+requests 网页重定向求解2. pdo 写入到数据库的内容为中文的时候写入乱码3. PHP类封装的插入数据,总是插入不成功,返回false;4. 二维数组怎么重新组合5. 如何使用mysql查询每个用户一次操作时记录的值6. python如何搜索字符串7. python3.x - 我把3.6的卸载了,也重启了,但是在cmd用python -V指令查看版本时,还是提示下图的python3.68. mysql 时间类型 字段(精确到时分秒) 怎么比较?9. javascript - vue1.0在微信浏览器的兼容性?10. python - 斗鱼关注人数爬下来是张加载图片,如何爬取关注人数
![android-studio - 一直无法下载android studio的 安卓模拟器求助](http://www.haobala.com/attached/image/news/202310/095450fe73.jpg)