কম্পিউটার

সাংখ্যিক ও বর্ণানুক্রমিক উপাদানের বিন্যাস (প্রাকৃতিক সাজানো) জাভাস্ক্রিপ্ট


আমাদের একটি অ্যারে রয়েছে যাতে কিছু সংখ্যা এবং কিছু স্ট্রিং রয়েছে। আমাদের এমনভাবে থেররে সাজাতে হবে যাতে সংখ্যাগুলি সাজানো হয় এবং প্রতিটি স্ট্রিংয়ের আগে স্থাপন করা হয় এবং তারপর স্ট্রিংগুলিকে বর্ণানুক্রমিকভাবে সাজাতে হবে৷

যেমন −

এই অ্যারে সাজানোর পরে

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 হল স্ট্রিং → এই ক্ষেত্রে আমরা প্রশ্নে জিজ্ঞাসা করা স্ট্রিং (b) এর আগে সংখ্যাটি (a) রাখি।

  • a হল স্ট্রিং কিন্তু b হল সংখ্যা → এই ক্ষেত্রে আমরা b রাখি a

    এর আগে
  • a এবং b উভয়ই স্ট্রিং → আমরা সেই স্ট্রিংটি পরীক্ষা করি যা বর্ণানুক্রমিকভাবে ছোট অর্থাৎ আগে আসে এবং আগে রাখে।


  1. জাভাস্ক্রিপ্টে অ্যারে এলিমেন্ট বাছাই করা

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

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

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