2016-01-25 27 views
6

比方说,我有以下数据:使用下划线,返回真或假findWhere

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

我想返回一个布尔值是否activeUser可以data.location.users阵列中找到。请注意,location.users阵列中的对象将不具有与activeUser对象相同的密钥。

有没有正常的下划线方式来做到这一点?我有以下几点。

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

我使用findWhere方法要么返回一个对象或null如果它不存在。

+0

http://stackoverflow.com/questions/143847/best-way-to-find-if-an-item-is-in-a- JavaScript的阵列 – ClearBoth

回答

6

另一种选择是使用._some() method。它会返回根据是否任何一个布尔发现:

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