Руководство по использованию функции Indexof c: от начала до конца
Метод `indexOf` в JavaScript используется для поиска индекса первого вхождения заданной подстроки в строку. В качестве параметра метод получает искомую подстроку, а также может принимать дополнительные аргументы, определяющие индекс начала поиска и регистрозависимость поиска.
Синтаксис метода выглядит следующим образом: `string.indexOf(searchValue[, fromIndex])`
При использовании метода `indexOf` нужно учитывать, что если искомая подстрока не найдена, то метод возвращает -1, а если искомая подстрока найдена, он возвращает индекс первого символа искомой подстроки.
Рассмотрим примеры использования метода `indexOf`:
javascript
const str = 'JavaScript is a popular programming language';
console.log(str.indexOf('p')); // выводит 5
console.log(str.indexOf('is')); // выводит 11
console.log(str.indexOf('x')); // выводит -1
console.log(str.indexOf('p', 6)); // выводит 26
console.log(str.indexOf('P')); // выводит -1
В примере выше переменная `str` хранит строку, в которой мы ищем заданные подстроки.
Первый вызов `indexOf` ищет символ `'p'` в строке `str` и возвращает индекс первого символа `'p'`, то есть 5.
Второй вызов `indexOf` ищет подстроку `'is'` в строке `str` и возвращает индекс первого символа `'i'`, то есть 11.
Третий вызов `indexOf` ищет символ `'x'` в строке `str`, но так как этот символ в строке отсутствует, метод возвращает -1.
Четвертый вызов `indexOf` ищет символ `'p'` в строке `str` начиная с индекса 6 и возвращает индекс первого символа `'p'` после 6, то есть 26.
Пятый вызов `indexOf` ищет символ `'P'` в строке `str`, но так как по умолчанию метод `indexOf` регистрозависимый, он не находит искомый символ и возвращает -1.
Также стоит отметить, что по умолчанию метод `indexOf` ищет только первое вхождение подстроки в строку. Если нужно найти все вхождения, можно использовать цикл или регулярное выражение.
javascript
const str = 'JavaScript is a popular programming language';
const searchStr = 'a';
let index = str.indexOf(searchStr);
while (index !== -1) {
console.log(index);
index = str.indexOf(searchStr, index + 1);
}
В этом примере мы используем цикл и метод `indexOf` для поиска всех вхождений подстроки `'a'` в строке `str`. Сначала мы находим первое вхождение подстроки и выводим его индекс. Затем мы продолжаем поиск подстроки, начиная со следующего символа после найденной подстроки, и выводим индекс каждого следующего вхождения. Цикл продолжается, пока метод `indexOf` не вернет -1, что означает, что все вхождения подстроки были найдены.