Reputation: 10681
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
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