7

我有以下 js 函数,我正在努力确定为什么它不会返回“true”。我已经通过在块中添加警报来验证逻辑块是否被击中,但它似乎跳过了包含 return 语句的行。

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

5 回答 5

15

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;
};
于 2012-08-21T15:05:10.950 回答
2

怎么样

function requiresMatchLevel(fields) {
        var isMatch = false;
        $.each(fields, function (i, field) {
            if (field.OperationParamName() == "MatchLevel" && field.Include()) {
                isMatch = true;
            }
        });
        return isMatch;
    };
于 2012-08-21T15:05:03.710 回答
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;
};

我希望这可以帮助你。

于 2012-08-21T15:06:19.437 回答
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;
};
于 2012-08-21T15:06:07.663 回答
0

使用 RETURN yourfunction();

事件上。

于 2013-10-04T19:08:05.943 回答