JavaScript sort() ফাংশন: সম্পূর্ণ বাংলা টিউটোরিয়াল
জাভাস্ক্রিপ্টে <sort()> মেথডটি একটি অ্যারে-ভিত্তিক মেথড যা আমাদের অ্যারেতে থাকা উপাদানগুলোকে সাজাতে সাহায্য করে। এই ফাংশনের সাহায্যে আমরা সংখ্যা, স্ট্রিং, অথবা অবজেক্ট অ্যারেকে ক্রমানুসারে সাজাতে পারি। চলুন বিস্তারিতভাবে শিখে নিই কিভাবে এটি কাজ করে এবং এর ভেতরের লজিকগুলো।
sort() মেথডের সাধারণ রূপ
এই মেথড মূলত অ্যারের উপাদানগুলোকে অ্যালফাবেটিক্যাল বা আসকি ভ্যালু অনুযায়ী সাজিয়ে থাকে।
<script>
const fruits = [‘Banana’, ‘Apple’, ‘Mango’];
fruits.sort();
console.log(fruits);
</script>
আউটপুট: ['Apple', 'Banana', 'Mango']
সংখ্যার ক্ষেত্রে sort() মেথড
সাধারণভাবে সংখ্যাকে sort() করলে এটি সংখ্যাগুলোকে স্ট্রিং হিসেবে বিবেচনা করে এবং সেভাবে সাজায়। ফলে ফলাফল কখনো ভুল হতে পারে। নিচে দেখুন:
const numbers = [40, 100, 1, 5, 25, 10];
numbers.sort();
console.log(numbers);
</script>
আউটপুট: [1, 10, 100, 25, 40, 5]
এটি ভুল ফলাফল, কারণ এটি সংখ্যাকে স্ট্রিং ধরে সাজিয়েছে।
✅ সঠিকভাবে সংখ্যা sort করার উপায়
নাম্বার সঠিকভাবে sort করতে compare function ব্যবহার করতে হবে।
| মেথড | উদাহরণ |
|---|---|
| Ascending (ঊর্ধ্বক্রম) | <code>numbers.sort((a, b) => a – b)</code> |
| Descending (অবনমিত) | <code>numbers.sort((a, b) => b – a)</code> |
const numbers = [40, 100, 1, 5, 25, 10];
numbers.sort((a, b) => a – b);
console.log(numbers);
</script>
আউটপুট: [1, 5, 10, 25, 40, 100]
Reverse() এর সাথে sort()
আপনি চাইলে sort করার পর <reverse()> ব্যবহার করে descending order করতে পারেন।
const fruits = [‘Banana’, ‘Apple’, ‘Mango’];
fruits.sort();
fruits.reverse();
console.log(fruits);
</script>
আউটপুট: ['Mango', 'Banana', 'Apple']
কাস্টম অবজেক্ট sort()
যদি আপনার কাছে অবজেক্টের অ্যারে থাকে, যেমনঃ
const students = [
{name: ‘Rafi’, score: 85},
{name: ‘Nila’, score: 92},
{name: ‘Toma’, score: 78}
];
students.sort((a, b) => a.score – b.score);
console.log(students);
</script>
আউটপুট: নাম্বারের ascending order অনুযায়ী student অবজেক্টগুলো সাজানো হবে।
কিছু গুরুত্বপূর্ণ টিপস
- sort() মূল অ্যারেটিকে modify করে। এটি একটি mutable মেথড।
- সংখ্যা sort করার সময় অবশ্যই
compare functionদিতে হবে। - string sort করার ক্ষেত্রে case-sensitive সমস্যা হতে পারে।
- sort() এর সাথে
localeCompare()ব্যবহার করলে multi-language sorting সহজ হয়।
localeCompare() দিয়ে ইউনিকোড string sort
বাংলা, আরবি, চাইনিজ ভাষায় সঠিকভাবে sort করতে localeCompare() ব্যবহার করতে হয়।
const names = [‘রাহাত’, ‘আদনান’, ‘জোবায়ের’];
names.sort((a, b) => a.localeCompare(b));
console.log(names);
</script>
আউটপুট: সঠিক বাংলা ক্রমে সাজানো নামের তালিকা।
❗ সতর্কতা
- sort() করলে অ্যারের আসল structure নষ্ট হয়ে যেতে পারে যদি clone না করা হয়।
- clone করতে <slice()>, <[…arr]> বা <Array.from()> ব্যবহার করুন।
উপসংহার
JavaScript এর <sort()> মেথডটি একটি শক্তিশালী এবং প্রয়োজনীয় টুল যা ডেটা ম্যানিপুলেশন বা ইউজার ইন্টারফেসে তথ্য সাজানোর ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে। তবে ভুলভাবে ব্যবহারের ফলে সমস্যাও হতে পারে, তাই সংখ্যা, স্ট্রিং, অবজেক্ট সব কিছুর জন্য আলাদা স্ট্রাটেজি ব্যবহার করা উচিত।