JavaScript函数没有返回true

use*_*498 4 javascript return function

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

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

pim*_*vdb 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;
};
Run Code Online (Sandbox Code Playgroud)