indexOf در JavaScript :
در زبان برنامهنویسی JavaScript، indexOf یکی از متدهای رشتهای است که برای جستجوی یک رشته در یک رشته بزرگتر استفاده میشود. این متد بازگشتی عددی با مقدار اندیس اولین رخداد رشته جستجو شده در رشته بزرگتر است.
متد indexOf دو پارامتر دارد: متن جستجو و اندیس شروع جستجو، که میتواند اختیاری باشد. اگر اندیس شروع جستجو مشخص نشده باشد، جستجو از اندیس صفر شروع میشود.
برای استفاده از متد indexOf، ابتدا باید یک رشتهی مبدا و یک رشته جستجو را تعریف کنید. سپس با فراخوانی متد indexOf روی رشتهی مبدا، اندیس اولین رخداد رشته جستجو شده در رشتهی مبدا را دریافت خواهید کرد. اگر رشته جستجو در رشتهی مبدا وجود نداشت، مقدار بازگشتی -1 خواهد بود.
مثالهای زیر نحوه استفاده از متد indexOf را نشان میدهند:
“`
const str = “Hello, world!”;
const index1 = str.indexOf(“world”); // 7
const index2 = str.indexOf(“l”); // 2
const index3 = str.indexOf(“z”); // -1
“`
در مثال بالا، ابتدا یک متغیر به نام str تعریف شده است. سپس با فراخوانی متد indexOf روی رشتهی str، اندیس اولین رخداد رشته “world” در رشتهی str در متغیر index1 ذخیره میشود. در مثال دوم، با فراخوانی متد indexOf روی رشتهی str، اندیس اولین رخداد حرف “l” در متغیر index2 ذخیره میشود. در مثال سوم، با فراخوانی متد indexOf روی رشتهی str، چون رشته “z” در رشتهی str وجود ندارد، مقدار بازگشتی -1 است.
برای جستجوی همهی رخدادهای رشته جستجو شده در رشتهی مبدا، میتوانید از یک حلقه استفاده کنید و هر بار با فراخوانی متد indexOf، اندیس رخداد بعدی را پیدا کنید. این کار به صورت زیر قابل انجام است:
“`
const str = “Hello, world!”;
let index = str.indexOf(“l”);
while (index !== -1) {
console.log(index);
index = str.indexOf(“l”, index + 1);
}
“`
در مثال بالا، یک متغیر به نام index با مقدار اندیس اولین رخداد حرف “l” در رشتهی str تعریف شده است. سپس با استفاده از یک حلقه while، اندیس همهی رخدادهای حرف “l” در رشتهی str چاپ میشود. با هر بار فراخوانی متد indexOf با انتقال اندیس شروع جستجو به اندیس بعدی، جستجو ادامه مییابد. اگر دیگر رخدادی از حرف “l” در رشتهی str وجود نداشت، متد indexOf مقدار -1 را برمیگرداند و حلقه while متوقف میشود.
در نتیجه، با استفاده از متد indexOf در JavaScript، میتوانید رشتههای مختلف را جستجو کنید و اندیس رخدادهای آنها را در رشتههای بزرگتر بیابید.