Alex Rivera | Logout

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

Asked 2010-10-15T21:43:25.217
52

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;
}
Edit
Report

1 Answer

14

Use a variable outside the loop to get the value and use it afterward.

var value;

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

alert(value);

The way you're doing is just fine. I've tested on jsFiddle, see an example here.

It's not working for you? Can you show more context?

answered 2010-10-15T22:39:29.650

Your Answer