递归就是函数自己调用自己,最后实现一些功能 以斐波那契数(1,1,2,3,5,8,13....)为例子介绍下递归的几个要素:
1. 递归首先要总结规律,写出要递归的函数(也就是实现业务的主逻辑)
总结主要逻辑:斐波那契数从第三项开始有一个规律,就是本身=前两项的和(ni=ni-1+ni-2),下面代码实现:
fibonacci1(n) = fibonacci1(n - 1) + fibonacci1(n - 2);
2. 设置递归结束的条件
if (n === 1 || n === 2) return 1;
完整的代码就是:
function fibonacci1(n) {
// 如果当前是1或者2,直接返回1
if (n === 1 || n === 2) return 1;
return fibonacci1(n - 1) + fibonacci1(n - 2);
}
3.也可以设置递归的执行条件
根据实际需要,限制在满足条件时才执行递归,也能控制递归执行次数,防止无限递归调用