【发布时间】:2015-05-13 15:02:18
【问题描述】:
我有一个递归函数来查找键并返回他的值,这是我的代码
$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 我必须返回密钥,但不能再次循环播放,我想我有任何狡猾的事情和函数返回身份不明
【问题讨论】:
-
注意到
return只从函数的当前调用返回,而不是最上面的递归调用?而break只中断当前循环,而不是递归中的所有循环? -
如果你在递归中,你还需要检查 else 分支中返回
$scope.findSelected的内容,如果它返回未定义 - 还要中断循环 -
如果有人可以将我的代码更改为功能正常工作
-
最好是人家教你自己找问题,这样以后你自己的代码也能修好。
-
所以如果有人可以解释一下
标签: javascript angularjs for-loop