مرتب سازی ارایه ها را توضیح دهید.
مرتب سازی ارایه ها را توضیح دهید.
از دو تابع براي مرتب سازي عناصر آرایه استفاده میشود. تابعی به نام reverse() براي مرتب سازي عکس آرایه استفاده میشود. مثال:
var aColors = [“red”, “green”, “blue”];
aColors.reverse();
alert(aColors.toString()); //outputs “blue,green,red”
از طرف دیگر تابعی به نام sort() عناصر آرایه را به صورت صعودي بر حسب مقادیرشان مرتب می کند. در این صورت عناصر آرایه بر حسب کدهاي کاراکتري شان مرتب می شوند. مثال:
;var aColors = [“red”, “green”, “blue”, “yellow”]
aColors.sort();
alert(aColors.toString()); //outputs “blue,green,red,yellow”
در صورتی که عناصر آرایه اعداد باشند نتیجه کمی عجیب و غریب است:
var aColors = [3, 32, 2, 5]
aColors.sort();
alert(aColors.toString()); //outputs “2,3,32,5”
همانطور که اشاره شد متد sort() به صورت پیش فرض عناصر آرایه را به صورت الفبایی (بر حسب کدهاي کاراکتري آن ها) و به صورت صعودي مرتب می کند. چنانچه بخواهیم آرایه اي از اعداد را به صورت صعودي مرتب کنیم می بایست می بایست
از یک تابع مقایسهاي که در قالب یک آرگومان براي این متد فرستاده می شود استفاده کنیم. خود این تابع مقایسه اي همیشه گرفته، آن ها را با هم مقایسه کرده و آرایهي اصلی براساس مقادیر بازگشتی این تابع انجام می (a,b دو آرگومان) به عنوان مثال شود. مقدار بازگشتی تابع مقایسه اي به یکی از سه صورت زیر است:
چنانچه می بایست b آرگومان اول) قرار بگیرد مقداري مثبت را برمی گرداند. )a آرگومان دوم) قبل ازچنانچه می بایست مکان b و a تغییري نکند مقدار صفر را برمی گرداند. چنانچه می بایست a قبل از b قرار بگیرد مقداري منفی را برمی گرداند. به عنوان مثال در صورتی که تابع زیر را به عنوان آرگومان براي متد sort().بفرستیم آرایه به صورت صعودي مرتب خواهد شد:
function Compare(a,b){
If(a>b){
Return 1;
}else if (a<b){
Return -1;
}else{
Return 0;
}
}
دقت داشته باشید که بدنه تابع فوق را می توان به شکل زیر کوتاهتر و ساده تر کرد ضمن اینکه همان عملکرد را خواهد داشت:
function Compare(a,b){
Return a-b;
}
براي مرتب سازي آرایه به صورت عددي نزولی کافی است جاي 1 و 1- در تابع مقایسه اي را عوض کنید.
منبع : انجمن علمی مهندسی فناوری اطلاعات دانشگاه پیام تور مرکز اران و بید گل
برای اموزش های ویدیویی زبان جاوا اسکیریپت به بستر ویدیو های اموزشی بروید