⏳۵۰٪ تخفیف فقط تا پایان جشنواره؛ بعدش همهچیز به قیمت قبل برمیگرده!
مشاهده دورههاسلام اگه متد 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]
می خوام بدونم طرز کار این تابع دقیقا چطوره؟
این هم منابع انگلیسی برای توضیحات بیشتر:
https://www.w3schools.com/jsref/jsref_sort.asp
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/Array/sort
اولی بدون ِ تابع مقایسه هستش، دومی بهمراه تابع مقایسه عناصر آرایه هستش.
اگر تابع مقایسه وجود نداشته باشه، عناصر تبدیل به رشته میشن و براساس حروف شون مقایسه میشن.
اگر تابع مقایسه وجود داشت: هر دو عنصری باهم مقایسه میشن، براساس کد تابع ِ مقایسه، عناصر دو به دو مقایسه میشن. تابع مقایسه باید همواره یک عدد رو برگردونه:
در مقایسه a و b، اگر عدد برگشتی کمتر از یک بود: هنگام مرتب سازی، a کوچکتر از b محسوب میشه.
در مقایسه a و b، اگر عدد برگشتی بزرگتر از یک بود: هنگام مرتب سازی، a بزرگتر از b محسوب میشه.
در مقایسه a و b، اگر عدد برگشتی صفر بود: هنگام مرتب سازی، a و b با هم برابرند و در کنار هم قرار می گیرند.
شاید پاسخ شما همینجا باشد