2021-03-04:JS递归的应用

 


JS递归的应用

 

 

文章目录

 


前言

 


 

一、递归是什么?

按照某一包含有限步数的法则或公式对一个或多个前面的元素进行运算,以确定一系列元素(如数或函数)的方法。

二、使用步骤

1.概念解释

按照百度的官方解释递归是一个有限步数,也就是说明递归并不是像某些博客说的那样,无限套娃下去。对一个或多个前面的元素进行运算,这句话的可以理解为我自己调用我自己去做一些事情,而这些事情具有重复性,和有限性,一直到限定条件结束位置,其实也就是经典阶乘思想

For exmple:举一个烂大家的代码例子,由以下可知,递归是调用了自己以前多个元素的进行了运算,我们把num=5传进去其实就是5! ===5x4X3X2X1。
function Myself(num){

    if (num <= 1){

         return 1;

    } else {

        return num * Myself(num-1);

    }

}

2.数据信息的应用

 

在我们用到包含多层次的信息查找,或者对行测类的排位置类型的题型,一定会用到阶乘的思想。,下面我们先介绍一下获取后台json信息过程,以dom数的形式展示
var data = [
            {
                id: 1,
                children:[{
                        id:2,
                        children:[]
                    }]
            },

            {
                id:3,
                children:[]
            },

            {
                id:4,
                children:[
                    {
                        id:5,
                        children:[
                            {
                                id:6,
                                children:[]
                            },

                            {
                                id:7,
                                children:[]
                            }
                        ]
                    }
                ]
            }
        ]

function forEachData(data){
       var str =  '<ul>'
       for(var i=0;i<data.length;i++){
               str+=`<li>${data[i].id}<li/>`
               if(data[i].children){ 
                str+= forEachData(data[i].children)
        }
    }
         str + ='<ul/>'
             return str
}

 div.innerHTMl= forEachData(data)

展示效果图


总结

通过了解递归我们可以解决经典排位置问题,假如例:甲、乙、丙、丁、戊五个人排成一列,共有多少种不同的排列方法?

从后台获取一大串json数据信息,我们可以通过大量套for循环进行解决,也可以通过递归思想来解决这些问题,其实编程的思想就是对现实世界一个模拟抽象的过程。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值