بررسی توابع split, splice, slice

سلام سلام ما هپی لرن هستیم و شما دارید چهارمین پست اموزشیمون رو از سایت ویرگول می‌خونید.در هپی لرن درباره‌ی موضوعات و مهارت هایی صحبت می‌کنیم که فارغ از این که شما با چه زبان برنامه نویسی دارید کد می‌زنید و یا چند ساله که دارید در حوزه برنامه نویسی فعالیت می‌کنید، میتونه بهتون کمک کنه تا در مسیر درست قرار بگیرید و سطح رضایتتون از کد زنی بالا ببرید. شما میتونید مقالات ما رو شنبه‌ها و جمعه ها از همین صفحه دنبال کنید.موضوع این قسمت بررسی توابع split, splice, slice:خوب به احتمال زیاد اسم این توابع را شنیدید ولی ممکنه براتون سخت باشه که تفاوت و کاربردهای اینارا متوجه بشید. در این بخش قراره این تابع هارو توضیح بدیم و ازش چند تا مثال کاربردی ببینیم.split: یکی از تابع هایی که هنگام استفاده از رشته ها باهاش خیلی سروکار داریم split، این متود یه ورودی میگیره (ورودیمون میتونه هر کاراکتری با هر تعدادی باشه) و رشته رو براساس ورودی یا همون الگومون تقسیم بندی میکنه و به زیر رشته ها تبدیل میکنه و در اخر به ما یک ارایه برمیگردونه که این ارایه از همین زیر رشته ها به وجود اومدهمثالی از splitدر مثال بالا به ترتیب رشته ما براساس ","و space تقسیم بندی شده است. اگه نتونیم براساس ورودی، رشته رو به زیر رشته تبدیل میکنیم(مثلا ورودی اصلا تو رشتمون نباشه) مقدار خروجی یک ارایه تک عضویه که عضو اول همون رشتمون بدون هیچ تغییری!خوب این تابع میتونه یه ورودی دیگه هم بگیره، ورودی دوم طول ارایه برگشتی بهمون میده.ورودی دوم در split طول ارایه مشخص میکنهدر مثال بالا وقتی به عنوان ورودی دوم عدد یک رو دادیم، بهمون فقط happy رو برگردونده چون مشخص کردیم طول ارایه برگشتی 1 باشه و فقط یه عضو داشته باشه.میدونستی که میتونیم به عنوان ورودی از RegExp یا همون عبارت های باقاعده هم استفاده کنیم؟ البته اگه درباره RegExp اطلاعی ندارید نگران نباشید قراره در قسمت های اینده راجبش صحبت کنیم:)تابع بعدی splice : این تابع برای حذف واضافه کردن به یک ارایه استفاده میشه.عملیات حذف به کمک spliceمثالی از spliceدو تا ورودی اول به ما کمک میکنه که بتونیم عملیات حذف رو انجام بدیم. ورودی اول نشون دهنده ایندکس (index) و مشخص میکنه از کدوم عنصر قصد داریم تغیراتمون اعمال کنیم (یادمون باشه که درجاوا اسکریپت ایندکس اولین ایتم 0 و ایتم های بعدی به ترتیب،شماره ایندکسشون یکی زیاد میشه!) ورودی دوم هم نشون دهنده این که چند تا ایتم ها قراره حذف بشندحالا اگه ورودی دوم رو ندیم چه اتفاقی میفته؟ جاوا اسکریپت میاد به طور پیش فرض عملیات حذف از ایندکس شروعی که معلوم کردیم (ورودی اولمونه دیگه) تا اخر ارایه انجام میده. خوب حالا اگه خواستیم به ارایه اضافه کنیم باید چیکار کنیم؟ ورودی ها بعدی نشون دهنده این هستند وقتی ایتم ها حذف بشند چه ایتم هایی بجاشون اضافه بشند.عملیات اضافه کردن با spliceدر مثال بالا قسمت اول می‌بینیم که از ایتم اول ارایه arr حذف کردیم و 'Code' را جایگزینش کردیم،در مثال دوم ایتمی از ارایه arr2 حذف نکردیم و به ابتدای ارایه دو ایتم اضافه کردیم.حتما توجه کنیم که تابع splice تعییرات رو روی ارایه اصلی انجام میدهو تابع اخر که قراره راجبش بگیم: slice: فرض کنید قصد داریم چند تا عنصر از آرایمون حذف کنیم با این تفاوت که میخواهیم ارایه اصلیمون تغییری نکنه (پس نمیتونیم از متود splice استفاده کنیم!) برای این کار از متود slice کمک میگیریم.همینطور که از اسمش پیداست این تابع میاد قسمتی از ارایه رو جدا کرده و بهمون برمیگردونه . بدون این که رو ارایه اصلی تاثیر بذاره. ورودی اول همون ایندکس شروعمون و ورودی دوم هم ایندکس پایانی هست و خروجی یک ارایه از ایتم با ایندکس شروع که مشخص کردیم تا سر ایتم با ایندکس پایانیه:)(بله! خود ایتم پایانی نیست)مثالی از تابع sliceدر تابع slice، مانند تابع قبلی اگه ورودی دوم رو ندیم به صورت خودکار خروجی از ایندکس شروع تا انتها در نظر میگیره.میدونستی اگه اصلا به تابع slice هیچی ورودی ندیم کل ارایه بهمون برمیگردونه؟ در حقیقت همه اینا باهم برابرند: arr.slice(0,arr.length) arr.slice(0) ()arr.sliceخوب امیدورام دیگه تفاوت بین اینارو متوجه شده باشید و دراخراگه دوست دارید راجب موضوع خاصی بنویسیم لطفا تو کامنت ها برامون بگید، و همچنین معرفی ما به دوستاتون میتونه بهمون خیلی کمک کنه تا تیم هپی لرن رو بزرگتر کنیم.