Include در جاوا اسکریپت – راهنمای استفاده + مثال و کد
در زبان برنامه نویسی جاوا اسکریپت، متد includes() به عنوان ابزاری ارزشمند برای تعیین وجود «رشتهای» (استرینگ | String) در رشته دیگر عمل میکند. includes() در اصلی یکی از متدهای جاوا اسکریپت است و کاربردهای فراوانی در سناریوهای مختلف دارد. همچنین استفاده از این متد جاوا اسکریپت به کاربران این امکان را میدهد که در آرایهها امکان وجود عناصر مشخصی را بررسی کنند. این کاربردها و بسیاری از موارد استفاده دیگر، برنامه نویسان جاوا اسکریپت را ملزم به یادگیری این متد میکند و بر اساس همین نیاز در این مطلب آموزشی از «مجله فرادرس» این بار قصد داریم که متد Include در جاوا اسکریپت را با زبانی ساده و به همراه مثالهای عملی تشریح کنیم.
متد Include در جاوا اسکریپت چیست؟
در زمینه برنامه نویسی جاوا اسکریپت، متد «includes» به عنوان متدی ارزشمند برای اطمینان از وجود رشتهای در رشته دیگر یا برای اطمینان از وجود عنصری در آرایه عمل میکند. اگر رشته یا عنصر مورد جستجو در آرایه یا رشته مقصد یافت شود، این متد نتیجه «True» را بازمیگرداند و برعکس اگر رشته یا عنصر مورد جستجو در آرایه یا رشته مقصد یافت نشود این بار نتیجه متد includes به «False» ارزیابی میشود.
توجه به این نکته مهم است که متد includes() به حروف کوچک و بزرگ حساس بوده که این امر در یافتن عناصر مدنظر دخیل است. این بدان معناست که اگر حروف رشته اصلی کاملاً با حروف رشته مورد جستجو مطابق و هماهنگ نباشد، متد مقدار false را برمیگرداند. علاوه بر این، پارامتر optionalPosition یا پارامتر موقعیت اختیاری به عنوان نوعی مقدار عددی انتخابی نقطه شروع جستجو برای عنصر یا رشته مورد جستجو را تعیین میکند. در مواردی که پارامتر optionalPosition حذف میشود، مقدار پیشفرض برای اندیس یا نقشه شروع جستجو، مقدار «صفر» در نظر گرفته خواهد شد.
در ادامه این مطلب تمامی مباحث گفته شده در مورد Include در جاوا اسکریپت پوشش داده میشود.
سینتکس متد Include در Javascript
متد includes() در جاوا اسکریپت دارای «سینتکسی» (Syntax) به صورت زیر است:
1str.includes(searchString, optionalPosition)
در سینتکس بالا، پارامتر searchString نشاندهنده رشته هدفی است که کاربر میخواهد در str آن را بیابد. همچنین پارامتر optionalPosition به عنوان نوعی مقدار عددی انتخابی است که نقطه شروع جستجوی اولیه را در str نشان میدهد. اگر پارامتر optionalPosition حذف شود، مقدار پیشفرض صفر به آن اختصاص داده خواهد شد. پس از یافتن searchString ، این متد نتیجه True بازمیگرداند. برعکس، اگر searchString یافت نشود، متد false را بازخواهد گرداند.
پارامترهای متد Include در جاوا اسکریپت
اگر متد Include در جاوا اسکریپت برای کار روی آرایهها مدنظر باشد آنوقت کمی تفاوت در پارامترهای آن ظاهر میشود. سینتکس زیر برای این موضوع مدنظر است:
1arr.includes(valueToFind, fromIndex)
در این زمینه، اصطلاح arr نوعی آرایه را نشان میدهد. متد includes() قادر است دو پارامتر مجزای زیر را در خود جای دهد:
- searchValue : این نشاندهنده ارزش جستجو شده است.
- «fromIndex» (اختیاری): این نشاندهنده موقعیت شروع آرایه برای جستجو بوده که اندیس شروع پیشفرض صفر است.
نکته مهم: هنگام برخورد با مقادیر منفی، شروع جستجوی رشته یا عنصر مد نظر در رشته یا آرایه اصلی به array.length + fromIndex تغیر میکند و عملاً شروع جستجو از انتهای آرایه آغاز میشود. به عنوان مثال، هنگامی که از مقدار -1 به عنوان اندیس شروع استفاده شود در نتیجه شروع جستجو به عنصر نهایی آرایه ارجاع خواهد شد.
مقدار بازگشتی متد include
پس از فراخوانی، متد includes() نتایج زیر را ارائه میدهد:
- True : این نتیجه در صورتی ظاهر میشود که searchValue در هرجایی از آرایه شناسایی شود.
- false : این نتیجه هم زمانی که searchValue در سراسر آرایه وجود نداشته باشد، بازگردانده خواهد شد،
مثال متد include در Javascript
در این بخش به بررسی چند مثال از متد includes() خواهیم پرداخت. مثال زیر برای تشخیص کلمهای خاص در رشته مدنظر آورده شده است. برای مثال فرض میشود که رشته I love Faradars موجود است. حال ما میخواهیم تعیین کنیم که کلمه love در این رشته وجود دارد یا خیر. در قطعه کد زیر، متغیر str نشان دهنده I love Faradars و رشته مورد جستجو love است.
1"I love Faradars".includes("love")
با توجه به اینکه عبارت love واقعاً در رشته str وجود دارد، اجرای این کد نتیجه True را به همراه خواهد داشت که خروجی آن در کنسول به صورت زیر است.
آیا متد Includes به حروف کوچک و بزرگ حساس است؟
بله متد Includes به حروف کوچک و بزرگ حساس است و در استفاده از آن برای بازیابی رشتههای مدنظر باید این نکته توجه داشت چون در غیر این صورت نتیجه عکس و خلاف واقع بازگردانی میشود. برای مثال اگر مثال قبل str را به I LOVE Faradars تغییر داده و رشته مورد جستجو همان رشته love باشد چه اتفاقی خواهد افتاد؟
1"I LOVE Faradars".includes('love')
این بار نتیجه در کنسول همانطور که در تصویر زیر نشان داده شده است، مقدار false خواهد بود.
این نتیجه به دلیل حساس بودن متد Include در جاوا اسکریپت به حروف بزرگ و کوچک است. در مورد مثال بالا رشته LOVE با رشته love مطابقت دقیقی ندارد.
پارامتر موقعیت اختیاری در متد includes
با استناد به مثال بالا در این بخش به استفاده از پارامتر موقعیت اختیاری در متد includes() پرداخته خواهد شد. اکنون هدف این است که بررسی شود که آیا عبارت love در رشته I LOVE Faradars زمانی که اندیس شروع جستجو به موقعیت 1 تغییر میکند وجود خواهد داشت یا خیر.
باید به این نکته توجه داشته که رشتهها به اندیسسازی مبتنی بر صفر متکی هستند، به این معنی که کاراکتر اولیه رشته یعنی حرف l دارای اندیس صفر است. با این شرایط کد به دلیل تغییر اندیس شروع جستجو به l نتیجه True را بازمیگرداند. شروع جستجو از موقعیت l به رشته love اجازه میدهد تا در اندیس یا موقعیت 2 به بعد ظاهر شود و بدین شکل به صورت کامل در رشته قرار میگیرد. اندیس l تا انتهای جمله شامل این کاراکترها و فاصلهها میشود.
" love freeCodeCamp"
توجه به این نکته مهم است که فضاهای درون رشتهها یا همان فضاهای خالی دارای مقادیر اندیس مختص به خود هستند. در کل کد مثال بالا با ادغام پارامتر موقعیت به صورت زیر است:
1"I love Faradars".includes('love', 1)
خروجی مثال بالا به صوت زیر است:
حال اگر پارامتر موقعیت به 3 تغییر یابد این بار نتیجه به false ارزیابی میشود که مثال زیر این موضوع را نشان میدهد:
1"I love Faradars".includes('love', 3)
خروجی کد بالا این بار به صورت زیر است:
این نتیجه به دلیل وجود پارامتر موقعیت با مقدار 3 اتفاق افتاده که حرف o را در خود جای داده است. از موقعیت 3 تا پایان جمله، کاراکترها و فاصلههای زیادی به صورت زیر موجود هستند.
1"ove freeCodeCamp"
بدیهی است که عبارت کامل love در رشته فوق رشته وجود ندارد. در ادامه چند مثال دیگر از متد include در جاوا اسکریپت ارائه خواهد شد.
چند مثال از متد include در جاوا اسکریپت
برای تفهیم و درک بهتر متد include در زبان برنامه نویسی جاوا اسکریپت در این بخش ٣ مثال کاربردی و مهم با هدف پوشش جنبههای مختلف این متد ارائه خواهد شد. توجه به جزئیات این مثالها برای درک بهتر این متد لازم و ضروری است.
مثال ١. استفاده از متد include در جاوا اسکریپت
قطعه کد مثال ١ که از متد includes() استفاده کرده به صورت زیر است:
1let languages = ["JavaScript", "Java", "C", "C++"];
2
3// checking whether the array contains 'C'
4let check1 = languages.includes("C");
5
6console.log(check1); // true
7
8// checking whether the array contains 'Ruby'
9let check2 = languages.includes("Ruby");
10
11console.log(check2); // false
خروجی مثال فوق به صورت زیر است:
true false
در مثال فوق ، متد includes() برای بررسی دقیق حضور عناصر C و Ruby در آرایه languages استفاده شده است. برای مثال بالا خط languages.includes("C") به نتیجه True ارزیابی میشود زیرا آرایه مد نظر عنصر زبان C را در برمیگیرد. برعکس، خط languages.includes("Ruby") به False ارزیابی خواهد شد زیرا آرایه فاقد عنصر Ruby است.
مثال ٢. استفاده از برای include جستجوی حساس به حروف بزرگ
مثال زیر ماهیت حساس بودن به حروف کوچک و بزرگ متد include در جاوا اسکریپت را نشان میدهد که قطعه کد آن به صورت زیر است:
1let languages = ["JavaScript", "Java", "C", "Python"];
2
3// checking whether the array contains 'Python'
4let check1 = languages.includes("Python");
5
6console.log(check1); // true
7
8// checking whether the array contains 'python'
9let check2 = languages.includes("python");
10
11console.log(check2); // false
خروجی مثال فوق به صورت زیر است:
true false
در سناریوی فوق، متد includes() حساس بودن به حروف کوچک و بزرگ خود را نشان میدهد. در این رابطه خط languages.includes ("Python") به True ارزیابی میشود. در مقابل، خط languages.includes ("python") به False منجر خواهد شد. این نتایج ناشی از رفتار حساس به حروف کوچک و بزرگ این متد است که بین «Python» و «python» به عنوان رشتههای مجزا تمایز قائل میشود.
مثال ٣. متد include در Javascript با دو پارامتر
مثال زیر نحوه استفاده از متد include در جاوا اسکریپت را با دو پارامتر بیان میکند که قطعه کد آن به صورت زیر است:
1let languages = ["JavaScript", "Java", "C", "Python"];
2
3// The second argument specifies the position to commence the search
4let check1 = languages.includes("Java", 2);
5
6console.log(check1); // false
7
8// The search initiates from the third-to-last element
9let check2 = languages.includes("Java", -3);
10
11console.log(check2); // true
خروجی مثال فوق به صورت زیر است:
false true
در مثال بالا، متد includes() با دو مقدار آرگومان فراخوانی میشود. خط languages.includes("Java", 2) در مثال بالا به False ارزیابی خواهد شد. این اتفاق به این دلیل رخ داده است که متد includes() نمیتواند Java را که از اندیس دوم آرایه شروع میشود، پیدا کند. در مقابل برای خط languages.includes("Java", -3)) ، متد به دلیل آرگومان منفی با مقدار -3 ، جستجوی Java را از سومین عنصر آخر آغاز میکند و این بار نتیجه به True ارزیابی میشود.
سخن پایانی
همانطور که بیان شد متد include در جاوا اسکریپت به منظور یافتن عناصر یا رشتههای مدنظر در آرایهها و رشتههای دیگر موارد استفاده قرار میگیرد. در مطلب فوق از مجله فرادرس در کنار توضیح مفاهیم مربوط به این متد، نحوه استفاده از آن در سناریوهای عملی و مختلف نیز ارائه شد.
همچنین چندین مثال مختلف برای نشان دادن جنبههای مختلفی که ممکن است کاربران در استفاده از این متد با آن مواجه شوند نیز پوشش داده شد. جنبههایی مانند حساس بودن به حروف کوچک و بزرگ، استفاده از پارامترهای دوگانه و حتی استفاده از پارامتر موقعیت منفی. به امید اینکه مطلب فوق درک نسبتاً خوبی از متد include در جاوا اسکریپت به کاربران عزیز مجله داده باشد.