متد sort در جاوااسکریپت - آزمون آنلاین برنامه نویسی
این کوییز بهت کمک میکنه تا ببینی چقدر به جاوااسکریپت مسلطی و چقدر اطلاعاتت دقیقه.
متد sort در جاوااسکریپت
متد sort() یکی از پرکاربردترین متدهای آرایهای در جاوااسکریپته. وظیفه اصلیش اینه که عناصر یه آرایه رو بر اساس ترتیب خاصی مرتب میکنه.
اما خب، استفاده ازش همیشه هم ساده نیست و یه سری نکتههای مهم داره که باید بدونی. این متد به طور پیشفرض، عناصر رو به شکل رشته در نظر میگیره و بر اساس کد یونیکد مرتبشون میکنه.
وقتی از این متد روی آرایهای از اعداد استفاده کنی، ممکنه نتیجهای که انتظار داری رو نگیری. مثلاً آرایه [10, 2, 5] بعد از مرتبسازی تبدیل میشه به [10, 2, 5] چون "10" از نظر رشتهای قبل از "2" قرار میگیره.

اینجاست که باید از یه تابع مقایسهکننده (compare function) استفاده کنی. این تابع به متد sort() میگه که چطور عناصر رو مقایسه کنه. این تابع دو آرگومان میگیره (مثلاً a و b) و بر اساس نتیجه مقایسهشون، یه عدد برمیگردونه:
- اگه نتیجه منفی باشه (
a - b < 0)،aقبل ازbقرار میگیره. - اگه نتیجه مثبت باشه (
a - b > 0)،bقبل ازaقرار میگیره. - اگه نتیجه صفر باشه (
a - b === 0)، ترتیبشون تغییری نمیکنه.
برای مرتبسازی اعداد به ترتیب صعودی، میتونی از a - b و برای مرتبسازی نزولی از b - a استفاده کنی.
چند نمونه کد برای متد sort
// مرتبسازی صعودی اعداد
const numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b);
// نتیجه: [1, 2, 3, 4, 5]
// مرتبسازی نزولی اعداد
const moreNumbers = [4, 2, 5, 1, 3];
moreNumbers.sort((a, b) => b - a);
// نتیجه: [5, 4, 3, 2, 1]
با انجام این کوییز میتونی میزان مهارت و تسلط خودت رو درباره متد sort بسنجی و همزمان اطلاعات خوبی در مورد این موضوع به دست بیاری.
سوالات این آزمون در مورد متد sort هستن و مواردی مثل شیوه کارکرد پیشفرض متد، کاربرد تابع مقایسهکننده و مرتبسازی آرایهای از آبجکتها رو شامل میشن. مثلاً ممکنه یکی از سوالات ازت بپرسه:
- وقتی روی یه آرایه از اعداد بدون تابع مقایسهکننده از
sort()استفاده کنی، نتیجه چی میشه؟ - برای مرتبسازی نزولی اعداد از چه تابعی باید استفاده کرد؟
با شرکت در این آزمون، به جزئیات و تفاوتهای ظریف در استفاده از این متد پی میبری و میفهمی که چطور در شرایط مختلف ازش به درستی استفاده کنی.
نکات مهم درباره متد sort
| نکته | توضیح |
|---|---|
| تغییر در آرایه اصلی | این متد آرایه اصلی را تغییر میدهد و آرایه جدیدی برنمیگرداند. |
| مرتبسازی رشتهای | به صورت پیشفرض، عناصر را به عنوان رشته مرتب میکند. |
| تابع مقایسه | برای مرتبسازی صحیح اعداد یا آبجکتها، باید از یک تابع مقایسهکننده استفاده کرد. |
حالا که با متد sort() و نکات مهمش آشنا شدی، وقتشه که خودت رو به چالش بکشی. روی دکمه شروع کلیک کن و در این آزمون که در مورد زبان برنامهنویسی جاوااسکریپت و متد sort هست، شرکت کن.