আমাদের একটি অ্যারে রয়েছে যাতে কিছু সংখ্যা এবং কিছু স্ট্রিং রয়েছে। আমাদের এমনভাবে থেররে সাজাতে হবে যাতে সংখ্যাগুলি সাজানো হয় এবং প্রতিটি স্ট্রিংয়ের আগে স্থাপন করা হয় এবং তারপর স্ট্রিংগুলিকে বর্ণানুক্রমিকভাবে সাজাতে হবে৷
যেমন −
এই অ্যারে সাজানোর পরে
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 উভয়ই স্ট্রিং → আমরা সেই স্ট্রিংটি পরীক্ষা করি যা বর্ণানুক্রমিকভাবে ছোট অর্থাৎ আগে আসে এবং আগে রাখে।