[英]Break out of function within enumarable.each iteration
我有一個Prototype類 - 在類中我調用一個函數,在這個函數中我做enumerable.each迭代。 如果此迭代中的元素未通過檢查,則調用另一個函數,然后稍后重新調用此相同的函數。 我可以在這個迭代中破解,因此不僅迭代結束,而且函數內沒有其他任何東西被調用。
說這個代碼我不希望調用console.log,如果elm.something == 'whatever
'。 顯然我可以設置一個變量,然后在函數后檢查這個,但是還有其他我應該做的事情嗎?
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
,在這種情況下, 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'");
}
你自己回答“顯然我可以設置一個變量,然后在功能后檢查這個”
在這種情況下,你基本上不想調用console.log,即使elm.something =='what'對於單個'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'");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.