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



Чат с GPT Компилятор