Javascript 函数递归

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

那什么样的场景用弟归呢,举一下通俗的例子:
假如老百姓每生一个儿子,政府就给100块钱补助,算一下你家四代后政府一共给了多少补助。这个例子是不是很通俗。下边我们用JS写一下这个程序:

var yeye= {
    
    
	name:"王一",
	haizi:[
		{
    
    
		name:"王一 一"haizi:[
			{
    
    name:"王小一"}
		]},
		{
    
    
		name:"王一 二"haizi:[
			{
    
    name:"王小二"}
		]},
		{
    
    
		name:"王一 二"haizi:[
			{
    
    name:"王小三"}
		]},
	]
}

buzhu = 0

function jishuan( fubei){
    
    
	if((fubei.haizi||[]).length){
    
      //如果有下一代进入循环,没有退出
		buzhu += fubei.haizi.length*100; //累加补助
		for(var i=0;i<fubei.haizi.length;i++){
    
    
			jishuan( fubei.haizi[i]) //用方法本身再计算下一代的下一代,直到没有下一代退出函数
		}
	}
}

猜你喜欢

转载自blog.csdn.net/zhou8622/article/details/131474885