Jquery each - Stop loop and return object Jquery each - Stop loop and return object jquery jquery

Jquery each - Stop loop and return object


Because when you use a return statement inside an each loop, a "non-false" value will act as a continue, whereas false will act as a break. You will need to return false from the each function. Something like this:

function findXX(word) {    var toReturn;     $.each(someArray, function(i) {        $('body').append('-> '+i+'<br />');        if(someArray[i] == word) {            toReturn = someArray[i];            return false;        }       });     return toReturn; }

From the docs:

We can break the $.each() loop at a particular iteration by making the callback function return false. Returning non-false is the same as a continue statement in a for loop; it will skip immediately to the next iteration.


here :

http://jsbin.com/ucuqot/3/edit

function findXX(word){    $.each(someArray, function(i,n)  {    $('body').append('-> '+i+'<br />');    if(n == word)    {      return false;    }     });  }


modified $.each function

$.fn.eachReturn = function(arr, callback) {   var result = null;   $.each(arr, function(index, value){       var test = callback(index, value);       if (test) {           result = test;           return false;       }   });   return result ;}

it will break loop on non-false/non-empty result and return it back, so in your case it would be

return $.eachReturn(someArray, function(i){    ...