Метод indexOf - поиск по массиву на JavaScript
Метод indexOf
осуществляет поиск элемента
в массиве. В первом параметре
указываем элемент для поиска.
Метод возвращает номер первого найденного элемента,
либо -1
, если такого элемента нет.
Второй необязательный параметр метода
задает позицию, с которой следует
начинать поиск.
Синтаксис
массив.indexOf(элемент, [откуда начинать]);
Пример
Давайте найдем позицию первой тройки в массиве:
let arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);
console.log(res);
Результат выполнения кода:
2
Пример
Пусть теперь проверяемого элемента нет в массиве:
let arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);
console.log(res);
Результат выполнения кода:
-1
Пример
Начнем поиск с заданной позиции:
let arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);
console.log(res);
Результат выполнения кода:
5
Частая ошибка
Иногда метод используют для проверки наличия элемента в массиве. В этом случае легко допустить ошибку, если выполнить проверку следующим образом:
if (arr.indexOf(3)) {
console.log(true);
} else {
console.log(false);
}
Такая проверка будет работать для
всех позиций, кроме нулевой - ведь
она трактуется как false
.
Правильно проверять наличие элемента следующим образом:
if (arr.indexOf(3) !== -1) {
console.log(true);
} else {
console.log(false);
}
Смотрите также
-
метод
includes
,
который проверяет наличие элемента в массиве -
метод
lastIndexOf
,
который ищет элементы с конца -
метод
at
,
который возвращает элемент массива по его индексу -
метод
match
,
который ищет совпадения в строке -
метод
search
,
который выполняет поиск