递归调用: 函数可以自己调用自己,必须要有结束条件,称为函数的递归调用;
三大问题因素
1.明确对应要解决的问题
2.明确临界点(终止) if else(没有规律的)
3.明确内部需要调用自己的函数
递归调用的方式
-
首先去找临界值,即无需计算,获得的值(一般是返回该值)。 一般是有结果返回的
-
找这一次和上一次的关系(一般从后往前找) ,函数必须要有参 其次参数之间得到的结果会存再某种关系
-
假设当前函数已经可以使用,调用自身计算上一次的运行结果,再写出这次的运行结果
如果当前函数已经使用 那么对应的上一次函数我们会把他当值来进行计算
例如: 1 3 5 7 9 .... 问第20位是什么? 分析得出规律:fn(2) = fn(2-1)+2 fn(3) = fn(3-1) + 2 function fn(number){ //这个里面的number表示的是当前传递的参数 为第几位 if(number==1){ //找临界点 已知条件(没有规律) return 1 }else{ //存在规律的 return fn(number-1)+2 //找到前者和后者的关系(从后往前找) 自己调用自己 } } //调用 console.log(fn(20));
数组
数组概念: 就是一组数据(可以存放多个数据类型,一般情况下是相同类型的数据, 不一定都是数字),如果数组里面没有数据就是空数