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

1 هفته پیش
توسط میلاد آپدیت شد
وحید جدیدی ( 8750 تجربه )
1 هفته پیش
تخصص : برنامه نویس

سلام اگه متد 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]

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

بهترین پاسخ انتخاب شده توسط وحید جدیدی
میلاد ( 145480 تجربه )
1 هفته پیش
تخصص : طراح رابط کاربری - Front-End

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


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


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

میلاد ( 145480 تجربه )
1 هفته پیش
تخصص : طراح رابط کاربری - Front-End
برای ارسال پاسخ باید وارد سایت شوید