Метод indexOf

Метод indexOf осуществляет поиск элемента в массиве. В первом параметре указываем элемент для поиска. Метод возвращает номер первого найденного элемента, либо -1, если такого элемента нет. Второй необязательный параметр метода задает позицию, с которой следует начинать поиск.

Синтаксис

javascriptмассив.indexOf(элемент, [откуда начинать]);

Пример

Давайте найдем позицию первой тройки в массиве:

javascriptlet arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);

console.log(res);

Результат выполнения кода:

javascript2

Пример

Пусть теперь проверяемого элемента нет в массиве:

javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);

console.log(res);

Результат выполнения кода:

javascript-1

Пример

Начнем поиск с заданной позиции:

javascriptlet arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);

console.log(res);

Результат выполнения кода:

javascript5

Частая ошибка

Иногда метод используют для проверки наличия элемента в массиве. В этом случае легко допустить ошибку, если выполнить проверку следующим образом:

javascriptif (arr.indexOf(3)) {
  console.log(true);
} else {
  console.log(false);
}

Такая проверка будет работать для всех позиций, кроме нулевой - ведь она трактуется как false.

Правильно проверять наличие элемента следующим образом:

javascriptif (arr.indexOf(3) !== -1) {
  console.log(true);
} else {
  console.log(false);
}

Смотрите также

  • метод includes,
    который проверяет наличие элемента в массиве
  • метод lastIndexOf,
    который ищет элементы с конца
  • метод at,
    который возвращает элемент массива по его индексу
  • метод match,
    который ищет совпадения в строке
  • метод search,
    который выполняет поиск