2015-05-26 7 views
8

मैं lodash का उपयोग कर रहा हूँ। मुझें यह पसंद है।लोडाश - कई परिणाम कैसे प्राप्त करें

मैं एक उन सरणी जो इस तरह दिखता है:

var users = [{ 
    'user': 'barney', 
    'age': 36, 
    'active': true 
}, { 
    'user': 'fred', 
    'age': 40, 
    'active': false 
}, { 
    'user': 'pebbles', 
    'age': 1, 
    'active': true 
}]; 

यहाँ मैं पहले उपयोगकर्ता कैसे खोजने और user संपत्ति तोड़ हूँ:

_.result(_.find(users, 'active', false), 'user'); 
// 'fred' 

हालांकि, मैं बांधना चाहते थे user और age मूल्य। मैं यह कैसे लिख सकता हूँ?

+1

'_.find (उपयोगकर्ता, 'सक्रिय', झूठी)' आप एक वस्तु वापस आ जाएगी, आप इसे 'वर की तरह उपयोग कर सकते हैं obj = _.find (उपयोगकर्ता, 'सक्रिय', झूठी); 'और फिर' obj.user' और 'obj.age' – Satpal

+1

प्राप्त करें आप किस उत्तर की अपेक्षा करते हैं? उपयोगकर्ता नाम और उम्र के साथ एक नई वस्तु? – vjdhama

+2

हां, vjdhama नई वस्तु मैं चाहता हूं –

उत्तर

4

आप बस एक ही परिणाम से user और age स्तंभों का चयन करना चाहते हैं आप pick() समारोह इस तरह उपयोग कर सकते हैं: तो आप where() उपयोग कर सकते हैं

_.pick(_.find(users, 'active'), ['user', 'age']); 
// 'barney', 36 

आप फ़िल्टर करना चाहते हैं और परियोजना और map():

_.map(_.where(users, 'active'), _.partialRight(_.pick, ['user', 'age'])); 
// [{ name: 'barney', age: 36 }, { user: 'pebbles', age: 1 } ] 
+2

आपके उत्तर विल स्मिथ के लिए धन्यवाद –

1

आप सरणी में वस्तु नहीं बल्कि उपयोगकर्ता विशेषता 'उपयोगकर्ता चाहते हैं, तो आप कर सकते हैं इसे _.find से प्राप्त करें।

_.find(users, 'active', false); 
// {'user': 'fred', 'age': 40, 'active': false} 
संबंधित मुद्दे