2016-01-25 5 views
6

でtrueまたはfalseを返すためにアンダースコアのは、私は次のようなデータを持っているとしましょう:使用しfindWhere

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

私はactiveUserdata.location.users配列で見つけることができるかどうかをブール値を返すようにしたいです。 location.users配列内のオブジェクトは、activeUserオブジェクトと同じキーを持ちません。

通常のアンダースコア方法はありますか?私には次のものがあります。

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

私はそれが存在しない場合は、オブジェクトまたはnullを返すために、どちらかfindWhereメソッドを使用しています。

+0

http://stackoverflow.com/questions/143847/best-way-to-find-if-an-item-is-in-a- javascript-array – ClearBoth

答えて

6

もう1つのオプションは、._some() methodを使用することです。それは何が発見されたかどうかに基づいてブール値を返します。

var userExists = _.some(data.location.users, function (user) { 
    return user.id === data.activeUser.id; 
}); 
関連する問題