2016-01-25 30 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; 
});