JavaScript में सरणियों को सॉर्ट करने के लिए बहुत शक्तिशाली इनबिल्ट फ़ंक्शन हैं। डिफ़ॉल्ट रूप से, सॉर्ट विधि तत्वों को वर्णानुक्रम में क्रमबद्ध करती है। उदाहरण के लिए,
उदाहरण
let arr1 = ["Zebra", "Bear", "Tiger"]; arr1.sort(); console.log(arr1);
आउटपुट
यह आउटपुट देगा -
[ 'Bear', 'Tiger', 'Zebra' ]
अब आइए एक इंट उदाहरण देखें,
उदाहरण
let arr1 = [1, 8, 31, 21]; arr1.sort(); console.log(arr1);
आउटपुट
यह आउटपुट देगा -
[ 1, 21, 31, 8 ]
यह वह नहीं है जिसकी हमें उम्मीद थी। यह आउटपुट हो रहा है क्योंकि डिफ़ॉल्ट रूप से सॉर्ट विधि तत्वों को वर्णानुक्रम में क्रमबद्ध करती है। अपनी इच्छा के अनुसार क्रमबद्ध करने के लिए, हमें इसे एक तुलना फ़ंक्शन प्रदान करने की आवश्यकता है कि यह निर्धारित करने के लिए 2 तर्क लागू करेगा कि कौन सा बड़ा है और कौन सा छोटा है और तदनुसार क्रमबद्ध करें। तो एक पूर्णांक सरणी को सॉर्ट करने के लिए, आपको कॉल करना चाहिए -
उदाहरण
let arr1 = [1, 8, 31, 21]; arr1.sort((a, b) => a - b); console.log(arr1);
आउटपुट
यह आउटपुट &,माइनस;
. देगा[ 1, 8, 21, 31 ]
इसका उपयोग यह प्रदान करने के लिए भी किया जा सकता है कि ऑब्जेक्ट सरणी को सॉर्ट करने जैसे अधिक जटिल मामलों में किस कुंजी का उपयोग किया जाना चाहिए। उदाहरण के लिए,
उदाहरण
let people = [{ name: "Zoe", age: 35 }, { name: "Richard", age: 21 }, { name: "Agnes", age: 25 }]; people.sort((a, b) => { let nameA = a.name.toUpperCase(); // ignore upper and lowercase let nameB = b.name.toUpperCase(); // ignore upper and lowercase if (nameA < nameB) { return -1; } if (nameA > nameB) { return 1; } // names must be equal return 0; }) console.log(people)
आउटपुट
यह आउटपुट देगा -
[ { name: 'Agnes', age: 25 }, { name: 'Richard', age: 21 }, { name: 'Zoe', age: 35 } ]
बहुत अधिक जटिल वस्तुओं को भी इस तरह से क्रमबद्ध किया जा सकता है। यह इस बारे में है कि आप अपने तुलना फ़ंक्शन की संरचना कैसे करते हैं।
जैसा कि आपने देखा है कि यह फ़ंक्शन सरणी को जगह में सॉर्ट करता है। इस क्रम में एक ही क्रम रखते हुए एक नया क्रमबद्ध सरणी वापस करने के लिए, आप पहले एक प्रतिलिपि बनाने के लिए निम्न का उपयोग कर सकते हैं और फिर सॉर्ट लागू कर सकते हैं।
आउटपुट
arr.slice(0).sort();