মাহা ও তার বন্ধু হাবীব ক্যাফেতে বসে প্রোগ্রামিং নিয়ে গল্প করছে। হাবীব জাভাস্ক্রিপ্ট শিখছে, আর আজকে তার মনে একটি প্রশ্ন আসলো যে কিভাবে একটা অ্যারেকে ছোট থেকে বড় মানে ascending order-এ সাজানো যায়।
মাহা বললো, ধর একটা অ্যারে আছে
এবং অ্যারে তে কিছু এলোমেলো নম্বর দেওয়া আছে। আমরা চাই এই নম্বরগুলোকে ছোট থেকে বড়
মানে সাজাতে। সহজ ভাষায় বলতে গেলে, প্রথমে সবচেয়ে ছোট নম্বরটা তারপর তার থেকে একটু
বড়, এভাবে একেবারে বড় নম্বরটাকে শেষে রাখতে হবে।
হাবীব প্রশ্ন করলো, তাহলে এই সমস্যাটি জাভাস্ক্রিপ্টের মাধ্যমে কিভাবে সমাধান করা যায়? মাহা হাসলো আর বললো, এটা তো খুবই সহজ! জাভাস্ক্রিপ্টে একটা বিল্ট-ইন sort() মেথড রয়েছে। যা ব্যবহার করে অ্যারেকে সহজে ascending order-এ সাজানো যায়।
হাবীব অবাক হয়ে বললো, অ্যারেটা
নিজে নিজে তো জানে না কিভাবে ছোট থেকে বড় হবে! মাহা বললো, ঠিক বলেছিস। সাধারণত
sort() মেথড অ্যারেটার উপাদানগুলোকে স্ট্রিং হিসেবে ধরে সাজায়। তাই আমরা যদি শুধু সংখ্যা
দিয়ে সাজাতে চাই, তাহলে sort() মেথডের ভেতরে একটা ফাংশন দিতে হবে যেটা বলে দিবে কিভাবে
একটি অপরটির সাথে তুলনা করবে।
মাহা কোডটি লিখলো -
let numbers = [5, 2, 9, 1, 5, 6];
// অ্যারেকে ছোট থেকে বড় সাজানোর জন্য sort() মেথড ব্যবহার করা হচ্ছে
numbers.sort(function (a, b) {
return a - b;
});
console.log(numbers);
হাবীব বললো, এটা তো কাজ করছে!
কিন্তু a – b এর মানে কী একটু ব্যাখ্যা কর? যখন sort() মেথডের ভেতরে এই ফাংশনটা দেওয়া
হয়, তখন a আর b হচ্ছে অ্যারের দুইটা উপাদান। যদি a - b পজিটিভ হয়, তাহলে a বড়, আর
b ছোট। তাই a কে b এর পরে রাখা হবে। আর যদি a - b নেগেটিভ হয়, তাহলে a ছোট, আর b বড়,
তাই a আগে যাবে। এই প্রক্রিয়াতে পুরো অ্যারেটা সাজানো হয়ে থাকে।
আরও কয়েকটি কোডের নমুনা দেওয়া
হলো –
নমুনা কোড – ১ (স্ট্রিং)
let names = ["Rahim", "Karim", "Abul", "Zahid"];
// স্ট্রিং সাজানো হবে অ্যালফাবেটিক্যাল ক্রমে
names.sort();
console.log(names); // ['Abul', 'Karim', 'Rahim', 'Zahid']
নমুনা কোড – ২ (অবজেক্ট)
let students = [
{ name: "Rahim", age: 22 },
{ name: "Karim", age: 18 },
{ name: "Abul", age: 25 },
{ name: "Zahid", age: 20 },
];
// বয়স অনুযায়ী ছাত্রদের সাজানো হচ্ছে
students.sort(function (a, b) {
return a.age - b.age;
});
console.log(students);
/*
[
{ name: 'Karim', age: 18 },
{ name: 'Zahid', age: 20 },
{ name: 'Rahim', age: 22 },
{ name: 'Abul', age: 25 }
]
*/
নমুনা কোড – ৩ (স্ট্রিংয়ের length অনুযায়ী)
let words = ["apple", "banana", "kiwi", "mango", "watermelon"];
// স্ট্রিংগুলোর দৈর্ঘ্য অনুযায়ী সাজানো হচ্ছে
words.sort(function (a, b) {
return a.length - b.length;
});
console.log(words); // ['kiwi', 'mango', 'apple', 'banana', 'watermelon']
ওয়েবসাইটটি বুকমার্ক করে রাখুন!
গল্পটি যদি ভালো লাগে এবং বন্ধুরা যাতে মিস না করে, পোষ্টটি শেয়ার করতে ভুলবেন না।
অবশ্যই লাইক ও কমেন্ট করবেন যাতে করে আমরা প্রতিনিয়ত নতুন নতুন সমস্যার পাশাপাশি সমাধান
নিয়ে হাজির হতে পারি এবং আপনাদেরও যদি কোডিং সম্পর্কিত কোনো সমস্যা থাকে তাহলে কমেন্টবক্সে
জানিয়ে দিন সমাধান করার চেষ্টা করবো, ইনশাআল্লাহ্।