जावास्क्रिप्ट: संपत्ति मूल्य के आधार पर वस्तुओं की एक श्रृंखला को क्रमबद्ध करना

जावास्क्रिप्ट: संपत्ति मूल्य के आधार पर वस्तुओं की एक श्रृंखला को क्रमबद्ध करना
JavaScript

स्ट्रिंग प्रॉपर्टी द्वारा जावास्क्रिप्ट ऑब्जेक्ट को सॉर्ट करना

वस्तुओं की सारणी को क्रमबद्ध करना जावास्क्रिप्ट में एक सामान्य कार्य है, विशेष रूप से उस डेटा के साथ काम करते समय जिसे एक विशिष्ट क्रम में प्रदर्शित करने की आवश्यकता होती है। एक विशिष्ट परिदृश्य में स्ट्रिंग प्रॉपर्टी मान, जैसे अंतिम नाम या शीर्षक के आधार पर वस्तुओं की एक सरणी को सॉर्ट करना शामिल है।

इस लेख में, हम यह पता लगाएंगे कि स्ट्रिंग प्रॉपर्टी के मान के आधार पर जावास्क्रिप्ट ऑब्जेक्ट की एक सरणी को कैसे क्रमबद्ध किया जाए। हम `सॉर्ट()` विधि के उपयोग की जांच करेंगे और चर्चा करेंगे कि क्या अतिरिक्त कदम, जैसे ऑब्जेक्ट में `toString()` विधि जोड़ना आवश्यक है।

आज्ञा विवरण
sort(function(a, b) {...}) विशिष्ट मानदंडों के आधार पर सरणी तत्वों का क्रम निर्धारित करने के लिए एक कस्टम सॉर्टिंग फ़ंक्शन को परिभाषित करता है।
localeCompare() वर्तमान लोकेल में दो स्ट्रिंग्स की तुलना करता है, एक संख्या लौटाता है जो दर्शाता है कि संदर्भ स्ट्रिंग पहले या बाद में आती है या दी गई स्ट्रिंग के समान है।
console.log() आमतौर पर डिबगिंग उद्देश्यों के लिए कंसोल पर जानकारी आउटपुट करता है।

जावास्क्रिप्ट ऑब्जेक्ट सॉर्टिंग का विस्तृत विवरण

ऊपर दी गई स्क्रिप्ट्स को जावास्क्रिप्ट ऑब्जेक्ट्स की एक सरणी को स्ट्रिंग प्रॉपर्टी के मान के आधार पर सॉर्ट करने के लिए डिज़ाइन किया गया है last_nom. पहले उदाहरण में, हम इसका उपयोग करते हैं sort(function(a, b) {...}) विधि, जो हमें एक कस्टम सॉर्टिंग फ़ंक्शन को परिभाषित करने की अनुमति देती है। यह फ़ंक्शन तुलना करता है last_nom प्रत्येक वस्तु की संपत्ति. यदि पहली वस्तु है last_nom दूसरी वस्तु से कम है last_nom, यह -1 लौटाता है, यह दर्शाता है कि पहली वस्तु दूसरी से पहले आनी चाहिए। यदि पहली वस्तु है last_nom बड़ा है, यह 1 लौटाता है, जिसका अर्थ है कि पहली वस्तु दूसरी के बाद आनी चाहिए। यदि वे बराबर हैं, तो यह 0 लौटाता है, यह दर्शाता है कि उनकी स्थिति अपरिवर्तित रहनी चाहिए।

दूसरी स्क्रिप्ट अधिक संक्षिप्त ES6 सिंटैक्स का उपयोग करती है। localeCompare() पद्धति के अंतर्गत प्रयोग किया जाता है sort() तुलना करने का कार्य last_nom वस्तुओं के गुण. यह विधि एक संख्या लौटाती है जो इंगित करती है कि क्या कोई स्ट्रिंग पहले आती है, बाद में आती है, या वर्तमान लोकेल में किसी अन्य स्ट्रिंग के समान है। console.log() सत्यापन के लिए कंसोल पर क्रमबद्ध सरणी को आउटपुट करने के लिए दोनों स्क्रिप्ट में फ़ंक्शन का उपयोग किया जाता है। दोनों विधियाँ वस्तुओं की सारणी को प्रभावी ढंग से क्रमबद्ध करती हैं last_nom प्रॉपर्टी, यह प्रदर्शित करती है कि जावास्क्रिप्ट में ऑब्जेक्ट प्रॉपर्टी सॉर्टिंग को कैसे संभालना है।

जावास्क्रिप्ट में एक स्ट्रिंग प्रॉपर्टी द्वारा वस्तुओं की एक श्रृंखला को क्रमबद्ध करना

क्लाइंट-साइड जावास्क्रिप्ट

var objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort(function(a, b) {
    if (a.last_nom < b.last_nom) {
        return -1;
    }
    if (a.last_nom > b.last_nom) {
        return 1;
    }
    return 0;
});

console.log(objs);

ES6 सिंटैक्स का उपयोग करके एक स्ट्रिंग प्रॉपर्टी द्वारा वस्तुओं की एक श्रृंखला को क्रमबद्ध करना

ES6 जावास्क्रिप्ट

const objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort((a, b) => a.last_nom.localeCompare(b.last_nom));

console.log(objs);

जावास्क्रिप्ट में एक स्ट्रिंग प्रॉपर्टी द्वारा वस्तुओं की एक श्रृंखला को क्रमबद्ध करना

क्लाइंट-साइड जावास्क्रिप्ट

var objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort(function(a, b) {
    if (a.last_nom < b.last_nom) {
        return -1;
    }
    if (a.last_nom > b.last_nom) {
        return 1;
    }
    return 0;
});

console.log(objs);

ES6 सिंटैक्स का उपयोग करके स्ट्रिंग प्रॉपर्टी द्वारा वस्तुओं की एक श्रृंखला को क्रमबद्ध करना

ES6 जावास्क्रिप्ट

const objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort((a, b) => a.last_nom.localeCompare(b.last_nom));

console.log(objs);

जावास्क्रिप्ट में वस्तुओं को क्रमबद्ध करने की उन्नत तकनीकें

जावास्क्रिप्ट में स्ट्रिंग प्रॉपर्टी द्वारा वस्तुओं की एक सरणी को सॉर्ट करते समय, इसकी जटिलताओं को समझना आवश्यक है sort() तरीका। डिफ़ॉल्ट रूप से, sort() विधि तत्वों को स्ट्रिंग के रूप में क्रमबद्ध करती है। इससे संख्याओं या विशेष वर्णों के साथ काम करते समय अप्रत्याशित परिणाम मिल सकते हैं। सटीक सॉर्टिंग सुनिश्चित करने के लिए, विशेष रूप से स्ट्रिंग गुणों के साथ, आपको एक कस्टम तुलना फ़ंक्शन का उपयोग करना चाहिए। निम्न के अलावा localeCompare(), एक अन्य उपयोगी तकनीक केस संवेदनशीलता को संभालना है। जावास्क्रिप्ट की स्ट्रिंग तुलना डिफ़ॉल्ट रूप से केस-संवेदी है, इसलिए 'ए' को 'ए' से कम माना जाएगा। इससे बचने के लिए, आप अपने तुलना फ़ंक्शन के भीतर सभी स्ट्रिंग्स को लोअर या अपर केस में परिवर्तित कर सकते हैं।

विचार करने योग्य एक अन्य महत्वपूर्ण पहलू अनेक संपत्तियों के आधार पर वर्गीकरण करना है। उदाहरण के लिए, यदि दो वस्तुएं समान हैं last_nom मूल्य, हो सकता है कि आप उन्हें आगे क्रमबद्ध करना चाहें first_nom. अतिरिक्त शर्तों को शामिल करने के लिए कस्टम तुलना फ़ंक्शन का विस्तार करके इसे प्राप्त किया जा सकता है। इस तरह की बहु-स्तरीय सॉर्टिंग यह सुनिश्चित करती है कि डेटा को व्यापक रूप से ऑर्डर किया गया है, जिससे अधिक सार्थक परिणाम मिलते हैं। इन उन्नत सॉर्टिंग तकनीकों को समझकर और लागू करके, आप जावास्क्रिप्ट में अधिक जटिल डेटा सॉर्टिंग परिदृश्यों को प्रभावी ढंग से संभाल सकते हैं।

जावास्क्रिप्ट ऑब्जेक्ट्स को सॉर्ट करने के बारे में सामान्य प्रश्न

  1. आप स्ट्रिंग प्रॉपर्टी द्वारा वस्तुओं की एक सरणी को कैसे क्रमबद्ध करते हैं?
  2. उपयोग sort() एक कस्टम तुलना फ़ंक्शन के साथ विधि का उपयोग करना localeCompare() स्ट्रिंग तुलना के लिए.
  3. क्या जावास्क्रिप्ट सॉर्टिंग केस-संवेदी है?
  4. हाँ, डिफ़ॉल्ट रूप से. इससे बचने के लिए तुलना फ़ंक्शन के भीतर स्ट्रिंग्स को लोअर या अपर केस में कनवर्ट करें।
  5. आप अनेक संपत्तियों के आधार पर छँटाई कैसे संभालते हैं?
  6. द्वितीयक गुणों के आधार पर क्रमबद्ध करने के लिए अतिरिक्त शर्तों को शामिल करने के लिए कस्टम तुलना फ़ंक्शन का विस्तार करें।
  7. क्या आपको एक जोड़ने की आवश्यकता है? toString() आपकी वस्तुओं को क्रमबद्ध करने की विधि?
  8. नहीं, कस्टम तुलना फ़ंक्शन का उपयोग करना पर्याप्त है।
  9. क्या करता है localeCompare() करना?
  10. यह वर्तमान लोकेल में दो स्ट्रिंग्स की तुलना करता है और उनके क्रम को इंगित करने वाली एक संख्या लौटाता है।
  11. क्या आप उसी पद्धति का उपयोग करके वस्तुओं को संख्यात्मक गुणों के आधार पर क्रमबद्ध कर सकते हैं?
  12. हाँ, आप संख्यात्मक तुलनाओं को संभालने के लिए तुलना फ़ंक्शन को भी अनुकूलित कर सकते हैं।
  13. आप क्रमबद्ध सरणी को कैसे आउटपुट करते हैं?
  14. उपयोग console.log() सत्यापन के लिए क्रमबद्ध सरणी को कंसोल पर प्रिंट करना।
  15. तुलना फ़ंक्शन में रिटर्न मानों का क्या महत्व है?
  16. वे तत्वों का क्रम निर्धारित करते हैं: -1 से कम के लिए, 1 से अधिक के लिए, और 0 बराबर के लिए।

जावास्क्रिप्ट में ऑब्जेक्ट सॉर्टिंग को समाप्त करना

जावास्क्रिप्ट में एक स्ट्रिंग प्रॉपर्टी द्वारा वस्तुओं की एक सरणी को सॉर्ट करना कुशलतापूर्वक उपयोग करके प्राप्त किया जा सकता है sort() एक कस्टम तुलना फ़ंक्शन के साथ विधि। लाभ उठाकर localeCompare() और केस संवेदनशीलता को संभालते हुए, आप सटीक और सार्थक डेटा सॉर्टिंग सुनिश्चित कर सकते हैं। इन तकनीकों को समझने से डेटा के बेहतर हेरफेर और प्रस्तुति की अनुमति मिलती है, जिससे अधिक जटिल परिदृश्यों को आसानी से पूरा किया जा सकता है। इसके अतिरिक्त, एकाधिक गुणों के आधार पर छंटाई परिष्कार की एक और परत जोड़ती है, जिससे क्रमबद्ध आउटपुट अधिक प्रासंगिक और व्यवस्थित हो जाता है।