javascript递归

Posted carry-carry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript递归相关的知识,希望对你有一定的参考价值。

按照html结构输出以下data结构
var data = [
        {
            name:‘AAA‘,
            child:[
                {name:‘a1‘,child:[{name:‘a1-1‘},{name:‘a1-2‘}]},
                {name:‘a2‘},
                {name:‘a3‘,child:[{name:‘a3-1‘},{name:‘a3-2‘,child:[{name:‘a3-2-1‘},{name:‘a3-2-2‘}]}]}
                ]
        },
        {
            name:‘BBB‘,
            child:[{name:‘b1‘},{name:‘b2‘},{name:‘b3‘}]
        },
        {
            name:‘CCC‘,
            child:[{name:‘c1‘},{name:‘c2‘},{name:‘c3‘}]
        }
      ]
      function recursive(data){
         var str = ‘<ul>‘
         for(var i=0; i<data.length;i++){
             str += "<li>" + data[i].name
            if(data[i].child){        //递归的结束条件
                str += recursive(data[i].child)    //递归调用
            }
             str += ‘</li>‘
         }
         str += "</ul>"
         return str
      }
      console.log(recursive(data))
递归使代码更加简洁,解决了多层循环的结构。

以上是关于javascript递归的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 将javascript对象递归输出到div。

JavaScript递归奇怪的行为?

来自 Eloquent Javascript 的 Javascript 递归

javascript 在 Javascript 中进入无限循环和递归调用时如何调试它?

javascript:递归匿名函数?

JavaScript:递归计数基本案例