মাহা ও তার বন্ধু হাবীব ক্যাফেতে বসে প্রোগ্রামিং নিয়ে গল্প করছে। হাবীব জাভাস্ক্রিপ্ট শিখছে, আর আজকে তার মনে একটি প্রশ্ন আসলো যে কিভাবে একটা অ্যারেকে বড় থেকে ছোট মানে descending order-এ সাজানো যায়।
মাহা বললো, ধর একটা অ্যারে আছে
এবং অ্যারে তে কিছু এলোমেলো নম্বর দেওয়া আছে। আমরা চাই এই নম্বরগুলোকে বড় থেকে ছোট
মানে সাজাতে। সহজ ভাষায় বলতে গেলে, প্রথমে সবচেয়ে বড় নম্বরটা তারপর তার থেকে একটু ছোট,
এভাবে একেবারে ছোট নম্বরটাকে শেষে রাখতে হবে।
হাবীব প্রশ্ন করলো, তাহলে এই সমস্যাটি জাভাস্ক্রিপ্টের মাধ্যমে কিভাবে সমাধান করা যায়? মাহা হাসলো আর বললো, এটা তো খুবই সহজ! জাভাস্ক্রিপ্টে একটা বিল্ট-ইন sort() মেথড রয়েছে। যা ব্যবহার করে অ্যারেকে সহজে descending order-এ সাজানো যায়।
হাবীব অবাক হয়ে বললো, অ্যারেটা
নিজে নিজে তো জানে না কিভাবে বড় থেকে ছোট হবে! মাহা বললো, ঠিক বলেছিস। সাধারণত
sort() মেথড অ্যারেটার উপাদানগুলোকে স্ট্রিং হিসেবে ধরে সাজায়। তাই আমরা যদি শুধু সংখ্যা
দিয়ে সাজাতে চাই, তাহলে sort() মেথডের ভেতরে একটা ফাংশন দিতে হবে যেটা বলে দিবে কিভাবে
একটি অপরটির সাথে তুলনা করবে।
মাহা কোডটি লিখলো -
let numbers = [5, 2, 9, 1, 5, 6];
// The sort() method is being used to sort the array in descending order
numbers.sort(function (a, b) {
return b - a;
});
console.log(numbers); // Output: [9, 6, 5, 5, 2, 1]
হাবীব বললো, এটা তো কাজ করছে!
কিন্তু a – b এর মানে কী একটু ব্যাখ্যা কর? যখন sort() মেথডের ভেতরে এই ফাংশনটা দেওয়া
হয়, তখন a আর b হচ্ছে অ্যারের দুইটা উপাদান। যদি a - b পজিটিভ হয়, তাহলে a ছোট, আর
b বড়। তাই a কে b এর পরে রাখা হবে। আর যদি a - b নেগেটিভ হয়, তাহলে a বড়, আর b ছোট,
তাই a আগে যাবে। এই প্রক্রিয়াতে পুরো অ্যারেটা সাজানো হয়ে থাকে।
আরও কয়েকটি কোডের নমুনা দেওয়া
হলো –
নমুনা কোড – ১ (স্ট্রিং)
let names = ["Rahim", "Karim", "Abul", "Zahid"];
// The strings will be sorted in descending alphabetical order
names.sort(function (a, b) {
return b > a ? 1 : b < a ? -1 : 0; // Compare strings directly
});
console.log(names); // Output: ['Zahid', 'Rahim', 'Karim', 'Abul']
নমুনা কোড – ২ (অবজেক্ট)
let students = [
{ name: "Rahim", age: 22 },
{ name: "Karim", age: 18 },
{ name: "Abul", age: 25 },
{ name: "Zahid", age: 20 },
];
// The students are being sorted by age in descending order
students.sort(function (a, b) {
return b.age - a.age; // Reverse the order for descending
});
console.log(students);
/*
[
{ name: 'Abul', age: 25 },
{ name: 'Rahim', age: 22 },
{ name: 'Zahid', age: 20 },
{ name: 'Karim', age: 18 }
]
*/
নমুনা কোড – ৩ (স্ট্রিংয়ের দৈর্ঘ্য অনুযায়ী)
let words = ["apple", "banana", "kiwi", "mango", "watermelon"];
// The strings are being sorted by their length in descending order
words.sort(function (a, b) {
return b.length - a.length; // Reverse the order for descending
});
console.log(words); // Output: ['watermelon', 'banana', 'apple', 'mango', 'kiwi']
ওয়েবসাইটটি বুকমার্ক করে রাখুন! গল্পটি যদি ভালো লাগে এবং বন্ধুরা যাতে মিস না করে, পোষ্টটি শেয়ার করতে ভুলবেন না। অবশ্যই লাইক ও কমেন্ট করবেন যাতে করে আমরা প্রতিনিয়ত নতুন নতুন সমস্যার পাশাপাশি সমাধান নিয়ে হাজির হতে পারি এবং আপনাদেরও যদি কোডিং সম্পর্কিত কোনো সমস্যা থাকে তাহলে কমেন্টবক্সে জানিয়ে দিন সমাধান করার চেষ্টা করবো, ইনশাআল্লাহ্।