কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ন্যাচারাল সোর্ট: নম্বর এবং স্ট্রিং মিশ্র অ্যারে সোর্ট করা

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

उदाहरण के लिए -

सॉर्ट होने के बाद यह ऐरे

const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9];

इस तरह दिखना चाहिए -

[1, 6, 7, 9, 47, 'afv', 'bdf', 'fdf', 'svd']

तो, आइए इसके लिए कोड लिखें -

उदाहरण

const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9]; const sorter = (a, b) => {    if(typeof a === 'number' && typeof b === 'number'){       return a - b;    }else if(typeof a === 'number' && typeof b !== 'number'){       return -1;    }else if(typeof a !== 'number' && typeof b === 'number'){       return 1;    }else{       return a > b ? 1 : -1;    } } arr.sort(sorter); console.log(arr);

आउटपुट

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

[    1, 6, 7,    9, 47, 'afv',    'bdf', 'fdf', 'svd' ]

कोड को समझना -

इस कोड का मुख्य भाग सॉर्टर फ़ंक्शन है, हम जानते हैं कि कॉलबैक फ़ंक्शन दो आर्गुमेंट्स प्राप्त करता है, दोनों ऐरे के तत्व होते हैं।

अब हमारे पास चार संभावनाएं हैं -

  • a और b दोनों नंबर हैं → इस मामले में हम छोटी संख्या को बड़ी संख्या से पहले रखते हैं

  • a नंबर है लेकिन b स्ट्रिंग है → इस मामले में हम नंबर (a) को स्ट्रिंग (b) से पहले रखते हैं जैसा कि प्रश्न में पूछा गया है।

  • a स्ट्रिंग है लेकिन b नंबर है → इस मामले में हम b को a से पहले रखते हैं

  • a और b दोनों स्ट्रिंग हैं → हम उस स्ट्रिंग की जांच करते हैं जो वर्णानुक्रम में छोटी है यानी पहले आती है और उसे पहले रखते हैं।

  1. জাভাস্ক্রিপ্টে অ্যারে এলিমেন্ট সর্টিং (Sorting)

  2. জাভাস্ক্রিপ্টে TypedArray.sort() ফাংশন

  3. জাভাস্ক্রিপ্টে মার্জ সোর্ট বনাম কুইক সোর্ট

  4. জাভাস্ক্রিপ্টে Array.prototype.sort() মেথড