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

JavaScript में मिश्रित न्यूमेरिक/अल्फान्यूमेरिक सरणी को कैसे सॉर्ट करें


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

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

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

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

  • केवल संख्याओं वाली स्ट्रिंग्स पहले आनी चाहिए बढ़ते क्रम में सॉर्ट की हुई।
  • अल्फाबेट और संख्याओं के संयोजन वाली स्ट्रिंग्स को पहले अल्फाबेट के अनुसार और फिर संख्याओं के अनुसार बढ़ते क्रम में सॉर्ट किया जाना चाहिए।

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

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. - JavaScript में मर्ज सॉर्ट इम्प्लीमेंटेशन

    मर्ज सॉर्ट (Merge Sort) डिवाइड-एंड-कॉन्कर एल्गोरिदम: ऐरे को आधा-आधा विभाजित करें जब तक सिंगल एलिमेंट्स न रह जाएं, फिर सॉर्टेड मर्ज करें। समय जटिलता: O(n log n) (सभी केसेस में)। एल्गोरिदम चरण विभाजन: ऐरे को दो भागों में बांटें, पुनरावर्ती रूप से जारी रखें विजय: सिंगल-एलिमेंट ऐरे पहले से सॉर्टेड है

  1. - JavaScript में इंसर्शन सॉर्ट कैसे लागू करें?

    इंसर्शन सॉर्ट (Insertion Sort) यह एक बहुत ही सरल तुलना सॉर्ट है जो एक एरे को सॉर्ट करता है। एक तुलना सॉर्ट उस वर्तमान मान की तुलना करता है जिसे हम सॉर्ट करने की कोशिश कर रहे हैं, एरे में अन्य मानों के साथ। यह एक समय में एक आइटम के साथ काम करता है और प्रत्येक आइटम को सही स्थान पर पुनरावृत्त रूप से र

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

    जावास्क्रिप्ट Array.prototype.sort() मेथड का उपयोग एरे को सॉर्ट करने के लिए किया जाता है। सॉर्टिंग का क्रम अल्फाबेटिक, न्यूमेरिक, आरोही या अवरोही हो सकता है। Array.prototype.sort() मेथड के लिए कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /