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

购物网站服务器价格搜索引擎营销是什么意思

购物网站服务器价格,搜索引擎营销是什么意思,建立充电站需要多少钱,做排名出租网站递归基础知识什么是递归在JavaScript程序中,函数直接或间接调用自己。通过某个条件判断跳出结构,有了跳出才有结果。递归的步骤(技巧)1、假设递归函数已经写好2、寻找递推关系3、将递推关系的结构转换为递归体4、将临界条件加入到递归体中(一…

递归基础知识

什么是递归

在JavaScript程序中,函数直接或间接调用自己。通过某个条件判断跳出结构,有了跳出才有结果。

7921676165a86584d926edab682d5890.png

递归的步骤(技巧)

1、假设递归函数已经写好
2、寻找递推关系
3、将递推关系的结构转换为递归体
4、将临界条件加入到递归体中(一定要加临界条件,某则陷入死循环,内存泄漏)

简单递归示例

通过简单的示例先来了解熟悉一下递归,看看如何使用递归?

求1-100的和

假设让你来,你是否会这样写?

var sum = 0;
for(var i=1; i<=100; i++){sum += i;
}
console.log(sum); // 5050

JavaScript用递归如何计算求1-100的和了?

分析:

假设递归函数已经写好,既sum(100),就是求1-100的和。寻找递推关系: 就是 n 与 n-1 ,或 n-2 之间的关系:

sum(n) == sum(n-1) + n
var resulst = sum(100);
var resulst = sum(99) + 100;
...

这时候我们差一个重要的步骤,也就是临界值,来阻止程序死循环

2、将临界条件加入到递归中
求100 转换为 求99
求99 转换为 求98
求98 转换为 求97

求2 转换为 求1
求1 转换为 求1
即 sum(1) = 1

3、递归函数

function sum(n){if(n==1) return 1;return sum(n-1) + n;
}
var amount = sum(100);
console.log(amount); // 5050

求 2,4,6,8,10… 第n项与前n项之和

281274fda5f69f07db94b8d5d1603205.png

分析
假设已知函数 fn(n)为第n项,sum(n)为前n项之和

递归关系

fn(n) = fn(n-1) + 2
sum(n) = fn(n) + sum(n-1)

递归体

function fn(n){return fn(n) = (n-1) + 2
}
function sum(n){return sum(n) = fn(n) + sum(n-1);
}

这时候我们同样差一个重要的步骤,也就是临界值,来阻止程序死循环

1、临界条件

fn(0) = 2
sum(0) = 2;

2、递归函数

function fn(n){if(n == 0) return 2;return fn(n-1) + 2;
}
function sum(n){if(n==0) return 2;return fn(n) + sum(n-1);
}
var amount = sum(100);
console.log(amount); // 10302

实际项目中用到递归的有哪些地方?

af5426b72372d7c91c1dc99bd1106878.png

1、遍历树形结构的数据

var data = [{name: '第一代',child: [{name: '第二代',child: [{name: '第三代',child: [{......}]},{name: '第三代'}]},{name: '第二代'},{name: '第二代'}]
}]

这样的数据结构,你就需要一个递归函数来解决问题了,因为你不知道有多少个child,有多少层级在里面,可能是100,也可能是1亿,所以就递归直到没有child后来终止程序。

2、接口调用,根据上一个接口返回数据条数n,调用n次,虽然很不科学,但是小编实际遇到过这样的需求

$.ajax(...).then((data)=>{// data是数组let fun = (index)=>{let params = data[index];$.ajax(...params).then(...)// 如果index小于data.length就继续执行fun函数if(index<data.length) fun(index+1);// 这时候index<data.length就是临界值,来阻止程序死循环}data && data.length && fun(0)
})

总结

递归在很多语言中都很常见,它能解决很多你不知道深度

同时本文重申三遍的问题,大家一定要记住。


作者:向建峰_Javan

来源:慕课网

本文原创发布于慕课网 ,转载请注明出处,谢谢合作

http://www.lbrq.cn/news/2596141.html

相关文章:

  • 哈尔滨站建筑想做一个网站
  • 建设网站的机构兰州seo快速优化报价
  • 网站建设一般用哪种语言开发竞价排名的服务模式是
  • 国内外b2b网站网址有哪些网站google搜索优化
  • 徐州疫情最新情况南昌seo排名扣费
  • 爱网站搭建百度一下你就知道手机版
  • 虚拟币网站开发搜索引擎技术优化
  • 网站建设入门 下载网上营销的平台有哪些
  • 36氪国外做网站成都seo优化公司
  • 营销型网站建设方案seo顾问培训
  • 建设银行网站首页口百度推广案例及效果
  • 东莞高端品牌网站建设ue5培训机构哪家强
  • 石家庄便宜网站制作泉州百度广告
  • 全国企业信息查询网站郑州seo方案
  • 地产官网怎么做浙江seo外包费用
  • 英文网站建设方案模板高校有什么好用的搜索引擎
  • 有没有做盗版电影网站犯罪的北京网站优化站优化
  • 张浦专业做网站互联网营销师证书怎么考多少钱
  • 字体 mac wordpress谷歌广告优化
  • 网站开发的学习方法韩国seocaso
  • 中山免费建站赤峰seo
  • 比较好的公司网站zac博客seo
  • 贵阳企业网站制作百度官网入口
  • 电商运营培训课程视频郑州关键词网站优化排名
  • 上海网站设计与制作代运营一家店铺多少钱
  • 顺德网站建设基本流程关于华大18年专注seo服务网站制作应用开发
  • 专业服务网站建设超级优化大师下载
  • 网站后台如何开发河南网站建设定制
  • 政府网站建设程序合肥网站设计
  • 手机版 网站建设广州优化防控措施
  • 脚手架开发-准备配置-配置文件的准备项目的一些中间件
  • Physics Simulation - UE中Projectile相关事项
  • Docker-07.Docker基础-数据卷挂载
  • Linux开发利器:探秘开源,构建高效——基础开发工具指南(下)【make/Makefile】
  • 力扣面试150题--加一
  • [GYCTF2020]FlaskApp