Javascript 在Enumable.each迭代中中断函数

Javascript 在Enumable.each迭代中中断函数,javascript,prototypejs,Javascript,Prototypejs,我有一个原型类——在这个类中我调用一个函数,在这个函数中,我不可枚举。每次迭代。如果此迭代中的某个元素未通过检查,我将调用另一个函数,该函数稍后将重新调用该函数。我可以在这个迭代中中断,这样不仅迭代结束,而且函数中的其他内容都不会被调用 用这段代码说,如果elm.something==“whatever”,我不希望调用console.log。显然,我可以设置一个变量,然后在函数之后检查它,但是还有什么我应该做的吗 myFunction: function(el){ el.each(fun

我有一个原型类——在这个类中我调用一个函数,在这个函数中,我不可枚举。每次迭代。如果此迭代中的某个元素未通过检查,我将调用另一个函数,该函数稍后将重新调用该函数。我可以在这个迭代中中断,这样不仅迭代结束,而且函数中的其他内容都不会被调用

用这段代码说,如果
elm.something==“whatever
”,我不希望调用console.log。显然,我可以设置一个变量,然后在函数之后检查它,但是还有什么我应该做的吗

myFunction: function(el){
    el.each(function(elm){ 
        if(elm.something == 'whatever'){
            this.someOtherFunction(elm);
        }
    },this);            
    console.log("i dont want this called if elm.something == 'whatever'");
}

需要明确的是,在本例中,
console.log
只是一些额外逻辑的占位符代码,这些逻辑将在此循环后执行

最简单的方法是避免使用each(),而是使用for循环重写:

myFunction: function(el){
    for(var i in el) {
      var elm = el[i];
        if(elm.something == 'whatever'){
            return this.someOtherFunction(elm);
        }
    }
    console.log("i dont want this called if elm.something == 'whatever'");
}

最简单的方法是避免使用each()而改为使用for循环重写:

myFunction: function(el){
    for(var i in el) {
      var elm = el[i];
        if(elm.something == 'whatever'){
            return this.someOtherFunction(elm);
        }
    }
    console.log("i dont want this called if elm.something == 'whatever'");
}
你自己回答的 “显然,我可以设置一个变量,然后在函数之后检查它”

在本例中,您基本上不希望调用console.log,即使elm.something=='whatever'表示单个'elm'

myFunction: function(el){
    var logIt = true;
    el.each(function(elm){ 
        if(elm.something == 'whatever'){
            logIt = false;
            this.someOtherFunction(elm);
        }
    },this);            
    logIt && console.log("i dont want this called if elm.something == 'whatever'");
}
你自己回答的 “显然,我可以设置一个变量,然后在函数之后检查它”

在本例中,您基本上不希望调用console.log,即使elm.something=='whatever'表示单个'elm'

myFunction: function(el){
    var logIt = true;
    el.each(function(elm){ 
        if(elm.something == 'whatever'){
            logIt = false;
            this.someOtherFunction(elm);
        }
    },this);            
    logIt && console.log("i dont want this called if elm.something == 'whatever'");
}

@KennyTM的可能重复-如果你看这个问题不是重复的,因为这是关于打破一个函数,那是关于打破一个每个循环@KennyTM的可能重复-如果你看这个问题不是重复的,因为这是关于打破一个函数,那是关于打破一个每个循环