Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to break out of .each() and return a value for a function

I want to use return false to break a .each() but also return a value at the same time. How can I do this?

Please refer to a work-around function to see what I am trying to do:

function HasStores(state) {     var statehasstores = false;      $(stores).each(function (index, store) {         if (state == store.state && store.category == "meyers") {             statehasstores = true;             return false;  // break         }     });      return statehasstores; } 

What Id like to do in pseudo code is:

Function () {     for() {         if found {             return true;         }        }     return false; } 
like image 469
ParoX Avatar asked Oct 15 '10 21:10

ParoX


2 Answers

You're doing it right...

Quote from http://api.jquery.com/each/

"We can stop the loop from within the callback function by returning false."

like image 103
Šime Vidas Avatar answered Sep 29 '22 03:09

Šime Vidas


Be creative:

try {   $(stores).each(function (index, store) {     if(state == store.state && store.category == "meyers"){       throw store;     }   }); } catch(e) {   // you got e with the value } 

No, I was just kidding, don't use this :). It came as an idea I liked to share.

like image 39
mhitza Avatar answered Sep 29 '22 03:09

mhitza