日期:2014-05-16  浏览次数:20364 次

获取目录树递归,为什么得到的结果为undefined?
获取目录树递归,为什么得到的结果为undefined?


HTML code

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools-yui-compressed.js"></script>
<script type="text/javascript">
    var drres={
        categories:[
            {categories_id:'4',parent_id:'0'},
            {categories_id:'6',parent_id:'4'},
            {categories_id:'7',parent_id:'6'}
        ]
    }
    
    //获取目录树数组,如['4','6','7']
    function get_upper_categories(cid,arr){
        var arr=arr||[];
        var a=drres.categories.filter(function (n,i){
            return n.categories_id==cid;
        });
        if(a.length>0){
            arr.unshift(cid);
            get_upper_categories(a[0]['parent_id'],arr);
        }else{
            return arr;
        }
    }
    
    var tree=get_upper_categories('7');
    alert(tree);
</script>




------解决方案--------------------
我自己写了一个简单的递归函数,也是返回不了局部变量。
估计是递归函数的问题,返回不了局部变量。可以定义一个全局变量,最后将arr赋值进去。
跪求大神指教啊!!