2017-04-12 18 views
13

द्वारा ऑब्जेक्ट की सरणी को सॉर्ट करने के लिए लोडाश का उपयोग करें। मैं 'नाम' मान (लोडाश का उपयोग करके) सरणी को सॉर्ट करने का प्रयास कर रहा हूं। हालांकि मैंने नीचे दिए गए समाधान को बनाने के लिए लोडाश डॉक्स का उपयोग किया था .ऑर्डबॉई पर कोई प्रभाव नहीं पड़ता है। क्या कोई सरणी को सॉर्ट करने के सही तरीके से कुछ प्रकाश डाल सकता है?मूल्य

वर्ण सरणी

[ 
    { 
     "id":25, 
     "name":"Anakin Skywalker", 
     "createdAt":"2017-04-12T12:48:55.000Z", 
     "updatedAt":"2017-04-12T12:48:55.000Z" 
    }, 
    { 
     "id":1, 
     "name":"Luke Skywalker", 
     "createdAt":"2017-04-12T11:25:03.000Z", 
     "updatedAt":"2017-04-12T11:25:03.000Z" 
    } 
] 

फंक्शन कोड

var chars = this.state.characters; 

chars = _.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name' 

this.setState({characters: chars}) 

उत्तर

18

इस विधि orderBy इनपुट सरणी परिवर्तन नहीं करता है, आप अपने सरणी के लिए परिणाम आवंटित करने के लिए है:

var chars = this.state.characters; 

chars = _.orderBy(chars, ['name'],['asc']); // Use Lodash to sort array by 'name' 

this.setState({characters: chars}) 
+1

कुल facepalm पल! धन्यवाद आदमी – James

+0

आपका स्वागत है, मान्य करने के लिए मत भूलना :) –

+0

hmmm, अभी भी सरणी को सॉर्ट करने के लिए प्रतीत नहीं होता है। निश्चित नहीं है कि मुझे प्रश्न अपडेट करना चाहिए या नया बनाना – James

10

आप lodash sortBy (https://lodash.com/docs/4.17.4#sortBy) का उपयोग कर सकते हैं।

आपका कोड की तरह हो सकता है:

const myArray = [ 
    { 
     "id":25, 
     "name":"Anakin Skywalker", 
     "createdAt":"2017-04-12T12:48:55.000Z", 
     "updatedAt":"2017-04-12T12:48:55.000Z" 
    }, 
    { 
     "id":1, 
     "name":"Luke Skywalker", 
     "createdAt":"2017-04-12T11:25:03.000Z", 
     "updatedAt":"2017-04-12T11:25:03.000Z" 
    } 
] 

const myOrderedArray = _.sortBy(myArray, o => o.name) 
+0

स्वीकार करूंगा आप शॉर्टेंड का भी उपयोग कर सकते हैं: '_.sortBy (myArray, 'name')' – Don