繁体   English   中英

中断循环并返回值,angularJs中的递归函数

[英]break for loop and return value , recursive function in angularJs

我有一个递归函数来查找键并返回他的值,这是我的代码

$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 === name我必须返回键,但不能再次循环播放,我认为我有任何躲闪的事物和函数返回不明

尝试以下方法。 它会在每次迭代结束时检查是否已设置密钥,如果已设置,则将其返回。 这也会从较低级别的递归中“冒泡”。 搜索顺序是深度优先。

$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;
    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM