Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में मिश्रित संख्यात्मक/अल्फ़ान्यूमेरिक सरणी कैसे क्रमबद्ध करें?

<घंटा/>

मान लीजिए कि हमारे पास इस तरह के अल्फ़ान्यूमेरिक स्ट्रिंग्स की एक सरणी है -

const arr = ['A1', 'A10', 'A11', 'A12', 'A3A', 'A3B', 'A3', 'A4', 'B10', 'B2', 'F1', '1', '2', 'F3'];

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक ऐसे सरणी में एक और एकमात्र तर्क के रूप में है।

और फंक्शन को इस ऐरे को इनप्लेस पर सॉर्ट करना चाहिए -

  • जिन स्ट्रिंग्स में केवल संख्याएँ होती हैं, उन्हें पहले बढ़ते क्रम में क्रमबद्ध किया जाना चाहिए।
  • अक्षरों और संख्याओं के संयोजन वाली स्ट्रिंग्स को पहले अक्षर के अनुसार और फिर संख्याओं के अनुसार बढ़ते क्रम में क्रमबद्ध किया जाना चाहिए।

इसलिए, आउटपुट इस तरह दिखना चाहिए -

const output = ['1', '2', 'A1', 'A2', 'A3', 'A3A', 'A3B', 'A4', 'A10', 'A11', 'A12', 'B2', 'B10', 'F1', 'F3'];

उदाहरण

const arr = ['A1', 'A10', 'A11', 'A12', 'A3A', 'A3B', 'A3', 'A4', 'B10', 'B2', 'F1', '1', '2', 'F3'];
const alphaNumericSort = (arr = []) => {
   const sorter = (a, b) => {
      const isNumber = (v) => (+v).toString() === v;
      const aPart = a.match(/\d+|\D+/g);
      const bPart = b.match(/\d+|\D+/g);
      let i = 0; let len = Math.min(aPart.length, bPart.length);
      while (i < len && aPart[i] === bPart[i]) { i++; };
         if (i === len) {
            return aPart.length - bPart.length;
      };
      if (isNumber(aPart[i]) && isNumber(bPart[i])) {
         return aPart[i] - bPart[i];
      };
      return aPart[i].localeCompare(bPart[i]); };
      arr.sort(sorter);
};
alphaNumericSort(arr);
console.log(arr);

आउटपुट

और कंसोल में आउटपुट होगा -

[
   '1', '2', 'A1',
   'A3', 'A3A', 'A3B',
   'A4', 'A10', 'A11',
   'A12', 'B2', 'B10',
   'F1', 'F3'
]

  1. जावास्क्रिप्ट में मर्ज सॉर्ट को कैसे कार्यान्वित करें?

    मर्ज-सॉर्ट करें मर्ज सॉर्ट एक डिवाइड-एंड-कॉनकॉर टाइप सॉर्टिंग-एल्गोरिदम का एक उदाहरण है। मर्ज सॉर्ट का इनपुट कुछ तत्वों की एक सरणी है, जिन्हें आमतौर पर कम से कम से सबसे बड़े तक व्यवस्थित करने की आवश्यकता होती है। मर्ज सॉर्ट में अनुसरण करने के चरण मर्ज सॉर्ट सरणी को दो उप सरणियों में विभाजित करता

  1. जावास्क्रिप्ट में सम्मिलन प्रकार को कैसे कार्यान्वित करें?

    सम्मिलन क्रमित करें यह एक सरणी को सॉर्ट करने के लिए एक बहुत ही सरल तुलना प्रकार है। एक तुलना क्रम वर्तमान मान की तुलना करता है जिसे हम सरणी में अन्य मानों के साथ सॉर्ट करने का प्रयास कर रहे हैं। यह एक समय में एक आइटम के साथ काम करता है और एक आवश्यक क्रमबद्ध सरणी प्राप्त करने के लिए प्रत्येक आइटम को

  1. Array.prototype.sort() जावास्क्रिप्ट में।

    JavaScript Array.prototype.sort() पद्धति का उपयोग किसी सरणी को छांटने के लिए किया जाता है। छँटाई का क्रम वर्णानुक्रमिक, संख्यात्मक, आरोही या अवरोही हो सकता है। Array.prototype.sort() विधि के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरि