cusejuice
cusejuice

Reputation: 10681

Use underscore to return true or false with findWhere

Let's say I have the following data:

var data = {
    activeUser: { id: 3, name: 'Joe', something: 'else' },
    location: {
        users: [{id: 1}, {id: 2}, {id: 3}]
    }
};

I want to return a boolean whether or not the activeUser can be found in the data.location.users array. Note that the objects in the location.users array will NOT have the same keys as the activeUser object.

Is there a normal underscore way to do this? I have the following.

var userExists = (_.findWhere(data.location.users, {id: data.activeUser.id})) ? true : false;

I'm using the findWhere method to either return an object or null if it doesn't exist.

Upvotes: 6

Views: 3249

Answers (1)

Josh Crozier
Josh Crozier

Reputation: 240928

One alternative option would be to use the ._some() method. It will return a boolean based on whether anything was found:

var userExists = _.some(data.location.users, function (user) {
  return user.id === data.activeUser.id;
});

Upvotes: 6

Related Questions