آموزش JavaScript
۲۶۰ آموزش
نمایش دسته بندی ها (۲۶۰ آموزش)

مرتب کردن عنصرهای (Element) یک آرایه (Array)، به صورت صعودی، با روش sort ، در JavaScript

با استفاده از روش sort در JavaScript ، می توانیم عنصرهای یک آرایه (Array) را بر حسب رقم اعداد (اگر عنصرها به صورت عدد باشند) و یا بر حسب حروف الفبا (اگر عنصرها به صورت رشته (String) باشند)، به صورت صعودی، مرتب کنیم.

فرض کنید که آرایه ای با نام myArray داریم، برای مرتب کردن عنصرهای آن، بر حسب رقم اعداد (اگر عنصرها به صورت عدد باشند) و یا بر حسب حروف الفبا (اگر عنصرها به صورت رشته (String) باشند)، به صورت صعودی، کدهای JavaScript زیر را می نویسیم :

نکته مهم

روش sort در JavaScript ، هنگام مرتب کردن اعداد، رقم های متناظر اعداد را مقایسه می کند (نه مقدار کلی عدد)، مثلا عدد 9 را بزرگتر از عدد 23 در نظر می گیرد، زیرا رقم اول عدد 9 برابر 9 و رقم اول عدد 23 برابر 2 خواهد بود و 9 از 2 بزرگتر است.

بنابراین روش sort در JavaScript ، نتایج صحیحی را برای اعداد برنمی گرداند.

برای رفع این مشکل، هنگامی که آرایه شامل اعداد می باشد، می توانیم روش sort را به صورت زیر به کار ببریم (یک تابع مقایسه (Compare Function) تعریف می کنیم که شیوه تعیین ترتیب عنصرها توسط روش sort را تغییر می دهد) :

به مثال زیر توجه کنید :

مثال

از روش document.write برای چاپ مقدار عنصرهای آرایه در خروجی استفاده کرده ایم. همچنین تگ br برای رفتن به خط جدید، مورد استفاده قرار گرفته است.

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید

در مثال زیر، روش sort را به گونه ای به کار می بریم که بتواند اعداد را دقیقا به صورت صحیح مرتب کند :

مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
نکته

بد نیست که مثال هایی را از شیوه غلط به کار بردن روش sort برای مرتب کردن ترتیب اعداد ذکر کنیم تا نتایج غلط آنها را مورد بررسی قرار دهید.

در مثال زیر، چند عدد تک رقمی و دو رقمی را به کار می بریم و نتایج، غلط خواهند بود :

مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید

مشاهده می کنید که نتایج غلطی به دست آمده است.

در مثال زیر، روش sort را به صورت عادی به کار می بریم و با توجه به اینکه اعداد تک رقمی هستند، نتایج صحیح برگردانده می شوند (گاهی بر حسب اعداد تعریف شده در آرایه، ممکن است نتایج صحیح باشند) :

مثال

از روش document.write برای چاپ مقدار عنصرهای آرایه در خروجی استفاده کرده ایم. همچنین تگ br برای رفتن به خط جدید، مورد استفاده قرار گرفته است.

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید

مشاهده می کنید که با توجه به تک رقمی بودن اعداد، نتایج صحیح می باشند.

نویسنده علیرضا گلمکانی
شماره کلید 2402
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)