2015-06-13 2 views
1

Я никогда не работал с js раньше и теперь столкнулся с проблемой, как я могу сделать дальше?Получить возврат от анонимной функции javascript в каждом цикле

function test() 
{ 
    $(xml).find("strengths").each(function() 
    { 
     $(this).each(function() 
     { 
      (if some condition) 
      { 
       //I want to break out from both each loops at the same time here. 
       // And from main function too! 
      } 
     }); 
    }); 
} 

Я понимаю, что остановить одну петлю мне просто нужно return false. Но что делать, если у меня есть вложенные? И как вернуться из основной функции?

Спасибо всем!

ответ

1

Вы можете использовать две переменные:

function test() 
{ 
    var toContinue = true, 
     toReturn; 
    $(xml).find("strengths").each(function() 
    { 
     $(this).each(function() 
     { 
      if("some condition") 
      { 
       toReturn = {something: "sexy there!"}; 
       return toContinue = false; 
      } 
     }); 
     return toContinue; 
    }); 

    if(toReturn) return toReturn; 
    //else do stuff; 
} 
+0

Спасибо, вот что мне нужно! –

0

Вы можете использовать временную переменную, например, так:

function test() { 
    $(xml).find("strengths").each(function() { 
     var cancel = false; 

     $(this).each(function() { 
      (if some condition) { 
       cancel = true; 
       return false; 
      } 
     }); 

     if (cancel) { 
      return false; 
     } 
    }); 
} 
Смежные вопросы