2016-01-25 7 views
6

साथ सही या गलत वापस जाने के लिए रेखांकित मान लीजिए कि मैं निम्न डेटा करते हैं:उपयोग 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; 

मैं findWhere विधि का उपयोग कर रहा हूँ या तो एक वस्तु या अशक्त यह मौजूद नहीं है, तो वापस जाने के लिए।

+0

http://stackoverflow.com/questions/143847/best-way-to-find-if-an-item-is-in-a- जावास्क्रिप्ट सरणी – ClearBoth

उत्तर

6

एक वैकल्पिक विकल्प ._some() method का उपयोग करना होगा। यह है कि क्या कुछ भी के आधार पर एक बूलियन वापस आ जाएगी मिला था:

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