# Метод indexOf

Метод `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`,
  который выполняет поиск

← →
↑
en ru