جشنواره عیدانه راکت | عضویت ویژه راکت برای آخرین بار | افزایش قیمت‌ها از سال جدید | و ...

مشاهده اطلاعات بیشتر...
ثانیه
دقیقه
ساعت
روز
وحید جدیدی
4 سال پیش توسط وحید جدیدی مطرح شد
2 پاسخ

متد مرتب سازی sort برای اعداد

سلام اگه متد sort رو در حالت عادی به کار ببریم خروجی آرایه زیر به این شکل می شه

let list = [10, 2, 20, 1, 2, 3, 4, 14, 11]
list.sort();
console.log(list);

جواب

[1, 10, 11, 14, 2, 2, 20, 3, 4]

حالا اگه یه تابع به شکل زیر بنویسیم مرتب سازی درست انجام میشه

function sortNumber(a, b) {
    return a - b;
}
let list = [10, 2, 20, 1, 2, 3, 4, 14, 11]
list.sort(sortNumber);
console.log(list);

جواب

[1, 2, 2, 3, 4, 10, 11, 14, 20]

می خوام بدونم طرز کار این تابع دقیقا چطوره؟


ثبت پرسش جدید
میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش آپدیت شد
میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش آپدیت شد
3

اولی بدون ِ تابع مقایسه هستش، دومی بهمراه تابع مقایسه عناصر آرایه هستش.


اگر تابع مقایسه وجود نداشته باشه، عناصر تبدیل به رشته میشن و براساس حروف شون مقایسه میشن.


اگر تابع مقایسه وجود داشت: هر دو عنصری باهم مقایسه میشن، براساس کد تابع ِ مقایسه، عناصر دو به دو مقایسه میشن. تابع مقایسه باید همواره یک عدد رو برگردونه:
در مقایسه a و b، اگر عدد برگشتی کمتر از یک بود: هنگام مرتب سازی، a کوچکتر از b محسوب میشه.
در مقایسه a و b، اگر عدد برگشتی بزرگتر از یک بود: هنگام مرتب سازی، a بزرگتر از b محسوب میشه.
در مقایسه a و b، اگر عدد برگشتی صفر بود: هنگام مرتب سازی، a و b با هم برابرند و در کنار هم قرار می گیرند.


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش آپدیت شد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام