JavaScript函数没有返回true

时间:2012-08-21 15:02:13

标签: javascript function return

我有以下js功能,我拉着我的头发试图确定为什么它不会返回'true'。我已经通过在块中添加警报来验证逻辑块被击中,但它似乎跳过包含return语句的行。

function requiresMatchLevel(fields) {
        $.each(fields, function (i, field) {
            if (field.OperationParamName() == "MatchLevel" && field.Include()) {
                return true;
            }
        });
        return false;
    };

5 个答案:

答案 0 :(得分:12)

return以每个功能为基础。返回传递给$.each的函数不会让你的外部函数返回一些东西。

如果在传递给$.each的函数中返回一些内容,jQuery将收到结果。这里唯一有效的值是false,它使jQuery脱离循环。

function requiresMatchLevel(fields) {
    var result = false;
    $.each(fields, function (i, field) {
        if (field.OperationParamName() == "MatchLevel" && field.Include()) {
            result = true;
            return false;  // break out of loop - no need to continue
        }
    });
    return result;
};

答案 1 :(得分:2)

怎么样

function requiresMatchLevel(fields) {
        var isMatch = false;
        $.each(fields, function (i, field) {
            if (field.OperationParamName() == "MatchLevel" && field.Include()) {
                isMatch = true;
            }
        });
        return isMatch;
    };

答案 2 :(得分:1)

当您运行jquery函数并返回true时,将返回true到jquery。尝试其中一些:

function requiresMatchLevel(fields) {
    var toBeReturned=false;
    $.each(fields, function (i, field) {
        if (field.OperationParamName() == "MatchLevel" && field.Include()) {
            toBeReturned=true;
        }
    });
    return toBeReturned;
};

我希望这可以帮到你。

答案 3 :(得分:0)

function requiresMatchLevel(fields) {
        var ret = false;
        $.each(fields, function (i, field) {
            if (field.OperationParamName() == "MatchLevel" && field.Include()) {
                ret = true;
                return false; // here you need to return false just like break out a loop.
            }
        });
        return ret;
};

答案 4 :(得分:0)

使用RETURN yourfuncttion();

关于活动。