循环中断和返回值,在AngularJ中进行递归功能



我有一个递归功能可以找到键并返回其值,这是我的代码

$scope.findSelected = function (object, name){
            //var key = '';
            for (var i =0 ; i< object.length; i++){
               var children =object[i];
                var vName =children.Value.Name;
                if(vName=== name ){
                    var key=children.Value.Key;
                    break;

                }else {
                     key = $scope.findSelected(children.Children, name);
                }
            }
            return key;
        };

其中vname ===名称我必须返回键,但不起作用循环播放,我认为我有任何狡猾的事情和功能返回未识别

尝试以下内容。它在每次迭代的末尾检查键是否已设置,并且是否将返回。这也将从较低的递归水平"泡泡"。搜索顺序是深度优先。

$scope.findSelected = function (object, name){
    var key;
    for (var i = 0; i < object.length; i++){
         var children =object[i];
         var vName = children.Value.Name;
         if(vName === name ){
              key = children.Value.Key;
         } else {
              key = $scope.findSelected(children.Children, name);
         }
         if(key) return key;
    }
};

最新更新