۳ متد آرایه جاوا اسکریپت که باید بدانید – به زبان ساده


در این مقاله به بررسی 3 متد آرایه جاوا اسکریپت میپردازیم که بسیار مهم هستند. آرایهها خود اجزای مهمی در کدنویسی محسوب میشوند. این متدها به ارتقای کیفیت کد شما کمک زیادی خواهند کرد.
3 متد آرایهای که در این مقاله مورد بررسی قرار میدهیم، به صورت زیر هستند:
- join()
- split()
- sort()
البته شما میتوانید هر پروژهای را بدون بهرهگیری از این متدها نیز اجرا کنید، اما در این صورت لازم خواهد بود که کدهای غیرضروری بنویسید که رویه مناسبی محسوب نمیشود. در ادامه ابتدا برخی متدهای مقدماتی مانند ()join و ()split را بررسی میکنیم و سپس به بررسی ()sort خواهیم پرداخت.
متد ()join
حالتی را تصور کنید که کاربران، مقادیری را در آرایه وارد میکنند و سپس میخواهند آن را به صورت یک رشته ببینند. این همان جایی است که متد ()join به کار میآید و عناصر آرایه را به یک رشته واحد تبدیل میکند.
از متد ()toString نیز برای تبدیل یک آرایه به رشته استفاده میشود، اما با بهرهگیری از متد ()join میتوان یک آرگومان جداکننده نیز تعیین کرد که موجب اجرای بهتر کد میشود. ساختار آن بسیار ساده است. کافی است از کدی مانند زیر استفاده کنید:
در کد فوق، ارسال جداکننده به متد اختیاری است و به تعریف شیوه جداسازی عناصر در آرایه میپردازد. این جداکننده میتواند یک کاراکتر فاصله، نقطه، کاما، یک کلمه و یا هر چیز دیگری باشد.
اگر هیچ آرگومانی به این متد ارسال نشود، عناصر آن با کاما از هم جدا میشود. در ادامه مثالهایی عملی از شیوه استفاده از این متد را میبینید:
در مثالهای فوق نکته مهم توجه به string8 و string2 است. در string2 هیچ چیزی بین نشانههای گیومه وجود ندارد، در حالی که در حالت string8 بین آنها یک فاصله وجود دارد. میتوانید هر تعداد فاصله که میخواهید بین آنها وارد کنید و نتیجه بر مبنای آن تغییر پیدا میکند.
متد ()split
در بخش قبلی با روش تبدیل عناصر یک آرایه به رشته متنی آشنا شدیم. در این بخش به توضیح معکوس آن کار یعنی تبدیل یک رشته به عناصر آرایه میپردازیم. این کار با استفاده از متد ()Split انجام میشود.
متد ()Split در حالتهایی که یک پیام ورودی داریم و میخواهیم ببینیم شامل کلمه خاصی است یا نه بسیار کارآمد است. این کار به سادگی با تبدیل کردن متن به آرایه و استفاده از متد ()includes انجام میشود. در این مورد در ادامه بیشتر صحبت خواهیم کرد.
پس از تبدیل متن به آرایه میتوان از تابعهای زیاد دیگری نیز روی آن استفاده کرد. متد ()Split از نظر فنی یک متد رشته محسوب میشود، اما به دلیل ارتباط آن با آرایهها در این مقاله مورد بررسی قرار گرفته است. ابتدا ساختار آن را مشاهده میکنیم:
آرگومان «جداساز» (Separator) کاراکتر یا کلمهای که برای افراز رشته استفاده میشود را تعیین میکند. اگر آن را خالی بگذارید، کل رشته به یک عنصر واحد در آرایه تبدیل خواهد شد.
آرگومان «محدودیت» (limit) اختیاری است و به ندرت استفاده میشود. این آرگومان یک مقدار صحیح است که تعداد افرازها را تعیین میکند. آیتمها پس از این محدودیت افراز در آرایه قرار نمیگیرند.
در ادامه مثالهایی از کاربرد متد ()Split را بررسی میکنیم. این مثالها در واقع همان مثالهای بخش قبلی در مورد متد ()join هستند که در جهت عکس نوشته شدهاند:
توضیح مثالها
اکنون مثالهای فوق را یک به یک بررسی میکنیم.
- array1, string1: هر جا که یک کاما باشد به یک آرایه افراز میکند.
- arrayWithLimit: یک محدودیت تعیین شده و بدین سبب آرایه حاصل تنها چهار عنصر دارد که بر اساس محدودیت است.
- arrayWithoutSeperator: این مورد را قبلاً توضیح دادیم؛ اگر هیچ جداسازی تعیین نشده باشد، کل رشته به یک عنصر واحد در آرایه تبدیل میشود.
- array2: از آنجا که گیومه خالی در آرگومان وجود دارد، متد ()split هر کاراکتر را جدا میکند و این عناصر شامل کاراکترهای فاصله، کاماها و هر گونه کاراکتر دیگری که در متن وجود دارد نیز میشود.
- array4: چنان که میبینید همه عبارتهای «and» از رشته حذف شدهاند و رشتهای که باقی مانده به یک عنصر واحد در آرایه تبدیل شده است. اگر حتی یک کاراکتر منفرد در آرگومان وجود داشت، نتیجه نهایی عناصری در آرایه میبود که عنصر تعیین شده در آن حذف شده بود. بنابراین باید در زمان استفاده از واژهها یا رشتهها به عنوان جداساز مراقب باشید.
- array3, array5, array, array7, array8: رشته یکسانی پس از افراز کردن همه موارد فوق دیده میشود که صحیح است زیرا میخواهیم کاری را که با متد ()join انجام دادیم به طور معکوس اجرا کنیم.
تمرین: ایجاد تابعی با ()join() ،split و ()reverse
اینک میتوانید به عنوان یک تمرین تابعهایی با استفاده از متدهای ()join() ،split و ()reverse بسازید و بررسی کنید آیا رشته ورودی کاربر یک «پالیندروم» (palindrome) است یا نه. پالیندروم به عبارتهایی گفته میشود که از هر دو طرف به شیوه واحدی خوانده میشوند. اگر با متد ()revere آشنا نیستید، باید بگوییم که این متد صرفاً ترتیب عناصر آرایه را معکوس میکند. به مثال زیر توجه کنید:
بدن ترتیب بخش بررسی متد ()split به پایان میرسد.
متد ()sort
همچنان که از نام این متد مشخص است کار آن مرتبسازی عناصر یک آرایه است. تابع ()sort به صورت پیشفرض مقادیر را به صورت رشتهای مرتبسازی میکند:
اما این روش مرتبسازی در زمان مرتبسازی اعداد مشکلاتی ایجاد میکند. برای نمونه اگر بخواهیم دو عدد 100 و 25 را مرتبسازی کنیم، عدد 100 جلوتر از عدد 25 ظاهر میشود، زیرا 1 در ابتدای 100 کمتر از 2 در ابتدای 25 است.
این مشکل با استفاده از یک تابع مقایسه قابل حل است. ساختار آن به صورت زیر است:
function(a, b){return a — b}
به مثال زیر توجه کنید:
توجه کنید که ما به جای تابع معمولی از ساختار تابع arrow استفاده کردهایم. اگر بخواهیم این تابع مقایسه را بررسی کنیم میبینیم که میتواند بسته به آرگومانها و این که a بزرگتر از b باشد یا نه، یک مقدار منفی، صفر یا مثبت بازگشت دهد.
زمانی که تابع ()sort دو مقدار را مقایسه میکند، مقادیر را به تابع مقایسه ارسال میکند و بر اساس موارد بازگشتی به صورت زیر آنها را مرتبسازی میکند.
- اگر نتیجه منفی باشد، a پیش از b مرتبسازی میشود.
- اگر نتیجه مثبت باشد، b پیش از a مرتبسازی میشود.
- اگر نتیجه صفر باشد، تغییری در شیوه مرتبسازی عناصر ایجاد نمیشود.
- تابع مقایسهای همه مقادیر را به صورت دو به دو در آرایه بررسی میکند.
- زمانی که میخواهیم روی مقادیر 25 و 100 کار کنیم، تابع مقایسهای sort() تابع مقایسه 25 و 100 را فرا میخواند.
- این تابع به مقایسه دو عدد 25 و 100 پرداخته و به دلیل بزرگتر نبودن عدد اول مقدار منفی بازگشت میدهد. در ادامه تابع sort 25 را در مرتبهای کمتر از 100 مرتبسازی میکند.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای JavaScript (جاوا اسکریپت)
- مجموعه آموزشهای برنامهنویسی
- آموزش جاوا اسکریپت (JavaScript)
- واکشی داده ها از سرور در جاوا اسکریپت — راهنمای جامع
- ۹ ترفند جاوا اسکریپت که باید در سال ۲۰۱۹ بدانید — راهنمای کاربردی
==