در دومین قسمت از آموزش آرایه ها با آموزش مرتب سازی آرایه در خدمت شما هستم.
مرتب سازی آرایه ها
مرتب سازی بر اساس حروف الفبا
تابع ()sort به ترتیب الفبا مرتب سازی می کند.نمونه ای از استفاده ی این کد در زیر مشاهده می کنید:
1 |
<br>var color = ["red", "Orange", "blue", "yellow"];<br>; () color.sort |
بعد از اجرای قطعه کد بالا color به صورت زیر نمایش داده خواهد شد
1 |
var color = ["blue" , "orange" , "red" , "yellow"]<br> |
مرتب سازی بر خلاف ترتیب حروف الفبا
تابع ()reverse آرایه ها را بر خلاف ترتیب حروف الفبا مرتب سازی می کند.کد زیر مثالی از کاربرد این کد می باشد:
1 |
<br>var color = ["red", "Orange", "blue", "yellow"];<br>; () color.reverse |
که نتیجه ی آن بصورت زیر نمایش داده می شود:
1 |
<br>var color = [" yellow" , "red" , "orange" , "blue"]<br> |
مرتب سازی آرایه هایی با محتوای عدد
تابع ()sort که در بالا به آن اشاره شد برای مرتب سازی آرایه هایی که محتوای آنها رشته هستند کاربردی و مناسب است اما اگر محتوا ی آنها اعداد باشند این تابع برای مرتب سازی تابع دقیقی نیست.به این دلیل این تابع برای مرتب سازی اعداد ابزار دقیق و مناسبی نیست که بدون در نظر گرفتن مقدار عدد ، تنها با مقایسه ی رقم اول اعداد آنها را مرتب سازی می کند.به عنوان مثال در الگوی مقایسه گر این دستور عدد “25” از عدد “100” بزرگتر است زیرا رقم اول “25” عدد “2” و رقم اول “100” عدد “1” است.
برای رفع این مشکل و مرتب سازی درست اعداد در ارایه می توانیم از یک تابع مقایسه گر استفاده کنیم مانند قطعه کد زیر:
1 |
<br>var number = [80, 10, 61, 35, 29, 40];<br> number.sort(function(a, b){return a - b}); <br> |
به طور مشابه برای مرتب سازی بر خلاف ترتیب نیز از کد زیر میتوان استفاده برد:
1 |
<br>var number = [40, 100, 1, 5, 25, 10];<br>;number.sort(function(a, b){return b - a}) |
توابع مقایسه ای
هدف از ایجاد توابع مقایسه گر ، تعریف مرتب سازی جایگزینی است.توابع مقایسه ای باید یکی از مقادیر منفی ، صفر و یا مثبت را تولید کنند که به ارگومان ها بستگی دارد.بیشتر
یافتن بیشترین یا کمترین مقدار در آرایه
تابع از پیش نوشته شده ای برای پیدا کردن بیشترین یا کمترین مقدار در آرایه وجود ندارد.با این حال بعد از این که شما یک آرایه را مرتب سازی کردید چه بصورت صعودی چه بصورت نزولی میتوانید بیشترین یا کمترین مقدار را از آن بدست آورید.انجام این کار به این صورت است که پس از مرتب سازی آرایه مثلا به صورت صعودی آرایه ی [0] دارای کمترین ارزش در بین تمام مقادیر آرایه است.
ذخیره ی آرایه ای از اشیاء
1 |
<br>var cars = [<br> {type:"Volvo", year:2016},<br> {type:"Saab", year:2001},<br> {type:"BMW", year:2010}<br>]; |
آرایه ها در جاوا اسکریپت اغلب شامل اشیاء هستند.حتی اگر اشیاء داخل یک ارایه دارای مقادیری از انواع مختلف داده باشند با استفاده از ()sort میتوان آنها را مرتب سازی کرد.راه حل این کار این است که یک تابع مقایسه گر برای مقایسه ی این مقادیر بنویسیم