Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
中断递归函数并返回Javascript中的值_Javascript_Jquery_Knockout.js - Fatal编程技术网

中断递归函数并返回Javascript中的值

中断递归函数并返回Javascript中的值,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我已经编写了这样一个javascript函数。但是我想当一个cretain条件满足时,函数将不会执行,这意味着它将中断并返回一个true-false-like状态 var ActionAttributes = function (data) { var status = true; var attrKey = data.AttributeKey(); //Condition to exit if (attrKey==''|

我已经编写了这样一个javascript函数。但是我想当一个cretain条件满足时,函数将不会执行,这意味着它将中断并返回一个true-false-like状态

 var ActionAttributes = function (data)
    {
        var status = true;
        var attrKey = data.AttributeKey();
        //Condition to exit
        if (attrKey==''||attrKey==null)
        {
            status = false;
            return false;
        }
        for (var i = 0; i < data.Children().length; i++)
        {
            var childData = data.Children()[i];
            ActionAttributes(childData);
        }
        return status;
    }
var ActionAttributes=函数(数据)
{
var状态=真;
var attrKey=data.AttributeKey();
//退出条件
if(attrKey=''| | attrKey==null)
{
状态=假;
返回false;
}
对于(var i=0;i
对于循环,您需要在
中设置中断条件。您只是在调用它,处理返回的
状态

var ActionAttributes = function(data) {
    var status = true;
    var attrKey = data.AttributeKey();
    //Condition to exit
    if (attrKey == '' || attrKey == null) {
        status = false;
        return false;
    }

    for (var i = 0; i < data.Children().length; i++) {
        var childData = data.Children()[i];

        //You need to break loop here
        //Add appropriate condition here
        if (ActionAttributes(childData) == false) {
            return false;
        }
    }

    return status;
}
var ActionAttributes=函数(数据){
var状态=真;
var attrKey=data.AttributeKey();
//退出条件
if(attrKey=''| | attrKey==null){
状态=假;
返回false;
}
对于(var i=0;i
好吧,递归一开始就不是很有用

在循环中调用ActionAttributes的递归,但从不处理返回的状态。因此,除非第一个对象满足退出条件,否则第一个调用方将始终接收true


您应该将ActionAttributes返回的值存储到status中,然后在返回值为false时立即退出循环。

不,现在请阅读几遍,不要满足您的要求。你能澄清一下吗?
返回ActionAttributes(childData),您需要在语句
ActionAttributes(childData)