Виталий Котов
Как работает метод indexOf() - JavaScript
Метод indexOf()
возвращает индекс первого вхождения данной подстроки в строке.
const message = "JavaScript is not Java";
// возврат индекса 'v' в первом вхождении 'va'
const index = message.indexOf("va");
console.log("index: " + index); // index: 2
Синтаксис indexOf()
Синтаксис метода indexOf()
следующий:
str.indexOf(searchValue, fromIndex);
Где str
- это строка.
Параметры indexOf()
Метод indexOf()
принимает:
searchValue
- значение для поиска в строке. Если строка не указана явно, будет искаться значение "undefined".
fromIndex
(необязательно) - индекс, с которого начинается поиск. По умолчанию он равен 0. Если fromIndex < 0, поиск начинается с индекса 0.
Возвращаемое значение indexOf()
- Возвращает первый индекс значения в строке, если оно присутствует хотя бы один раз.
- Возвращает -1, если значение не найдено в строке.
Примечание: метод
indexOf()
чувствителен к регистру.
Для пустой строки searchValue
и fromIndex
меньше длины строки, indexOf
возвращает значение, равное fromIndex
.
Аналогично, для пустой строки searchValue
и fromIndex
превышающей длину строки, indexOf
возвращает длину строки.
"Purpleschool JavaScript".indexOf("", 0); // возвращает 0
"Purpleschool JavaScript".indexOf("", 3); // возвращает 3
// длина строки здесь равна 20
"Purpleschool JavaScript".indexOf("", 25); // возвращает 20
"Purpleschool JavaScript".indexOf("", 21); // возвращает 20
Примеры
Пример 1: Использование метода indexOf()
var str = "JavaScript is the world's most misunderstood programming language.";
// indexOf() возвращает первое вхождение
var index1 = str.indexOf("language");
console.log(index1); // 57
var index2 = str.indexOf("p");
console.log(index2); // 8
// второй аргумент указывает начальный индекс поиска
var index3 = str.indexOf("p", 9);
console.log(index3); // 45
// indexOf возвращает -1, если ничего не найдено
var index4 = str.indexOf("Python");
console.log(index4); // -1
Вывод в консоль:
57
8
45
-1
Пример 2: Поиск всех вхождений элемента
function findAllIndex(string, value) {
indices = [];
var currentIndex = string.indexOf(value);
while (currentIndex != -1) {
indices.push(currentIndex);
currentIndex = string.indexOf(value, currentIndex + value.length);
}
return indices;
}
var str = "JavaScript is as related to Java as Carpenter is to Carpet.";
var occurance1 = findAllIndex(str, "J");
console.log(occurance1); // [ 0, 28 ]
var occurance2 = findAllIndex(str, "Carpet");
console.log(occurance2); // [ 52 ]
var occurance3 = findAllIndex(str, "x");
console.log(occurance3); // []
Вывод в консоль:
[ 0, 28 ]
[ 52 ]
[]
Карта развития разработчика
Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile