سلام اگه متد 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 با هم برابرند و در کنار هم قرار می گیرند.
این هم منابع انگلیسی برای توضیحات بیشتر:
https://www.w3schools.com/jsref/jsref_sort.asp
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/Array/sort
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟