2016-02-19 11 views
24

मेरे पास मेरे मानदंडों को पूरा करने वाली वस्तु को वापस करने के लिए सरल कार्य है।lodash _. सभी मैचों को देखें

var res = _.find($state.get(), function(i) { 
     var match = i.name.match(re); 
     return match && 
      (!i.restrict || i.restrict($rootScope.user)); 
    }); 

मैं सभी परिणाम (सिर्फ पहला नहीं) जो इस मापदंड लेकिन सभी परिणाम मिलता है कैसे पता कर सकते हैं:

कोड की तरह दिखता है।

एंज सलाह के लिए धन्यवाद।

+2

क्या आप '_.filter' की तलाश में हैं? – georg

उत्तर

52

बस _.filter का उपयोग करें - यह सभी मिलान किए गए आइटम लौटाता है। संग्रह के तत्वों, सभी तत्वों की एक सरणी लौटने से अधिक

_.filter

दोहराता के लिए truthy रिटर्न विधेय। भविष्यवाणी तीन तर्कों के साथ लागू की जाती है: (मान, अनुक्रमणिका | कुंजी, संग्रह)।

6

आप _.filter तो जैसे अपनी आवश्यकताओं के सभी में गुजर उपयोग कर सकते हैं,:

var res = _.filter($state.get(), function(i) { 
     var match = i.name.match(re); 
     return match && 
      (!i.restrict || i.restrict($rootScope.user)); 
    }); 

Link to documentation

3

lodash बिना ES6 का उपयोग कर, FYI करें:

बेसिक उदाहरण (लोग हो जाता है जिसकी उम्र 30 से कम है):

const peopleYoungerThan30 = personArray.filter(person => person.age < 30) 

उदाहरण के लिए अपने कोड का उपयोग कर उदाहरण:

$state.get().filter(i => { 
    var match = i.name.match(re); 
    return match && 
      (!i.restrict || i.restrict($rootScope.user)); 
}) 
संबंधित मुद्दे