Конспект JS-course

Метод indexOf( )

Источник: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

Метод indexOf() возвращает первый индекс, по которому данный элемент может быть найден в массиве или –1, если такого индекса нет.

Синтаксис

arr.indexOf(searchElement[, fromIndex = 0])

Параметры

  • searchElement Искомый элемент в массиве.
  • fromIndex Индекс, с которого начинать поиск. Если индекс больше или равен длины массива, возвращается -1, что означает, что массив даже не просматривается. Если индекс является отрицательным числом, он трактуется как смещение с конца массива. Обратите внимание: если индекс отрицателен, массив всё равно просматривается от начала к концу. Если рассчитанный индекс оказывается меньше 0, поиск ведётся по всему массиву. Значение по умолчанию равно 0, что означает, что просматривается весь массив.

Описание

Метод indexOf сравнивает искомый элемент searchElement с элементами в массиве, используя строгое сравнение (тот же метод используется оператором === , тройное равно).

Примеры

Пример: использование indexOf

В следующем примере indexOf используется для поиска значений в массиве.

var array = [2, 5, 9];
var index = array.indexOf(2);
// index равен 0
index = array.indexOf(7);
// index равен -1
index = array.indexOf(9, 2);
// index равен 2
index = array.indexOf(2, -1);
// index равен -1
index = array.indexOf(2, -3);
// index равен 0

Пример: нахождение всех вхождений элемента

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

var indices = [];
var array = ['a', 'b', 'a', 'c', 'a', 'd'];
var element = 'a';
var idx = array.indexOf(element);
while (idx != -1) {
  indices.push(idx);
  idx = array.indexOf(element, idx + 1);
}

console.log(indices);
// [0, 2, 4]