[英]How to break out of a for loop inside a recursive function and return in Javascript?
[英]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.