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))
遞歸使代碼更加簡潔,解決了多層循環的結構。
相關文章
相關標籤/搜索