代码之家  ›  专栏  ›  技术社区  ›  Robin Sun

jquery中的return false每个循环并没有结束整个函数

  •  -1
  • Robin Sun  · 技术社区  · 4 年前

    看来jquery每个循环中的返回词不会结束整个函数。这是下面的代码。其目的是,当数组中的值不是数字时,它应该停止所有函数,而不仅仅是循环。但事实证明,它只会停止循环并继续下面的其他逻辑。

    在C#或Java中,返回字将停止整个函数。在JavaScript中不是这样设计的吗?

    function testMehtod() {
            var itemIds = [];
            $("#confirmOrderItemContainer").find(":checkbox:checked").each(function (i, o) {
                itemIds[i] = $(o).attr('item-id');
                if (isNaN(itemIds[i])) {
                    return false;
                } 
            });
    
            //other logic ...
    }
    
    0 回复  |  直到 4 年前
        1
  •  -1
  •   diavolic    4 年前

    如果您需要捕获打破循环并返回false:

    function testMehtod() {
        var itemIds = [];
        var ret = true; // our flag variable with default value - everything is good
        
        $("#confirmOrderItemContainer").find(":checkbox:checked").each(function (i, o) {
            itemIds[i] = $(o).attr('item-id');
            if (isNaN(itemIds[i])) { // not good
                ret = false; // let set flag about it
                return false; // break $.each loop
            } 
        });
        if (ret === false) { // not good? let's leave function
            return false;
        }
    
        //other logic ...
    }