码迷,mamicode.com
首页 > 其他好文 > 详细

递归误区

时间:2018-11-29 21:45:10      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:调用   sel   find   child   pre   push   二次   返回   sele   

  $scope.findChid = function(obj,arr){
        
        if(obj && obj.children && obj.children.length>0){
            arr.push({
                list:obj.children,
                select:obj.children[0]
            });
            $scope.findChid(obj.children[0], arr);
        }else{
            return arr;
        }

    }
obj.children.length>0

这样调用此递归函数将会返回undefine,因为到倒数第二次的返回值就没有保存了,最后的return只是返回给了倒数第二次的调用

   $scope.findChid = function(obj,arr){
        
        if(obj && obj.children && obj.children.length>0){
            arr.push({
                list:obj.children,
                select:obj.children[0]
            });
            return $scope.findChid(obj.children[0], arr);
        }else{
            return arr;
        }

    }

正确的返回

递归误区

标签:调用   sel   find   child   pre   push   二次   返回   sele   

原文地址:https://www.cnblogs.com/longsiyuan/p/10040922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!