логотип PurpleSchool
логотип PurpleSchool

Как работает метод indexOf() - JavaScript

Автор

Виталий Котов

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

Пример

let languages = ["Java", "JavaScript", "Python", "JavaScript"];

// // получаем индекс первого вхождения "JavaScript"
let index = languages.indexOf("JavaScript");
console.log(index);

// Вывод в консоль: 1

Синтаксис indexOf()

Синтаксис метода indexOf() следующий:

arr.indexOf(searchElement, fromIndex);

Где arr - это массив.

Параметры indexOf()

Метод indexOf() принимает:

  • searchElement
    • элемент, который нужно найти в массиве.
  • fromIndex (необязательно) - индекс, с которого следует начать поиск. По умолчанию он равен 0.

Возвращаемое значение indexOf()

  • Возвращает первый индекс элемента в массиве, если он присутствует хотя бы один раз.
  • Возвращает -1, если элемент не найден в массиве.

Примечание:

indexOf() сравнивает элемент searchElement с элементами массива, используя строгое равенство (аналогично оператору triple-equals или ===).

Примеры

Пример 1: Использование метода indexOf()

var priceList = [10, 8, 2, 31, 10, 1, 65];

// indexOf() возвращает индекс первого появления
var index1 = priceList.indexOf(31);
console.log(index1); // 3

var index2 = priceList.indexOf(10);
console.log(index2); // 0

// второй аргумент указывает начальный индекс поиска
var index3 = priceList.indexOf(10, 1);
console.log(index3); // 4

// indexOf() возвращает -1, если ничего не найдено
var index4 = priceList.indexOf(69.5);
console.log(index4); // -1

Вывод в консоль:

3
0
4
-1

Примечания:

  • Если fromIndex >= array.length, поиск в массиве не производится и возвращается -1.
  • Если fromIndex < 0, индекс вычисляется в обратном порядке. Например, -1 обозначает индекс последнего элемента и так далее.

Пример 2. Поиск всех появлений элемента

function findAllIndex(array, element) {
  indices = [];
  var currentIndex = array.indexOf(element);
  while (currentIndex != -1) {
    indices.push(currentIndex);
    currentIndex = array.indexOf(element, currentIndex + 1);
  }
  return indices;
}

var priceList = [10, 8, 2, 31, 10, 1, 65, 10];

var occurance1 = findAllIndex(priceList, 10);
console.log(occurance1); // [ 0, 4, 7 ]

var occurance2 = findAllIndex(priceList, 8);
console.log(occurance2); // [ 1 ]

var occurance3 = findAllIndex(priceList, 9);
console.log(occurance3); // []

Вывод в консоль:

[ 0, 4, 7 ]
[ 1 ]
[]

Пример 3: Поиск существования элемента, иначе его добавление

function checkOrAdd(array, element) {
  if (array.indexOf(element) === -1) {
    array.push(element);
    console.log("Элемент не найден! Обновляем массив.");
  } else {
    console.log(element + " уже находится в массиве.");
  }
}

var parts = ["Monitor", "Keyboard", "Mouse", "Speaker"];

checkOrAdd(parts, "CPU"); // Элемент не найден! Обновляем массив
console.log(parts); // [ 'Monitor', 'Keyboard', 'Mouse', 'Speaker', 'CPU' ]

checkOrAdd(parts, "Mouse"); // Mouse уже находится в массиве

Вывод в консоль:

Элемент не найден! Обновляем массив.
[ 'Monitor', 'Keyboard', 'Mouse', 'Speaker', 'CPU' ]
Mouse уже находится в массиве.
Стрелочка влевоКак работает метод lastIndexOf() - JavaScriptКак работает метод includes() - JavaScriptСтрелочка вправо

Все гайды по Javascript

Как работает метод trim() - JavaScriptКак работает метод toUpperCase() - JavaScriptКак работает метод toLowerCase() - JavaScriptКак работает метод substring() - JavaScriptКак работает метод startsWith() - JavaScriptКак работает метод split() - JavaScriptКак работает метод slice() - JavaScriptКак работает метод search() - JavaScriptКак работает метод replaceAll() - JavaScriptКак работает метод repeat() - JavaScriptКак работает метод replace() - JavaScriptКак работает метод padStart() - JavaScriptКак работает метод padEnd() - JavaScriptКак работает метод matchAll() - JavaScriptКак работает метод match() - JavaScriptКак работает метод localeCompare() - JavaScriptКак работает свойство length - JavaScriptКак работает метод lastIndexOf() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод fromCodePoint() - JavaScriptКак работает метод fromCharCode() - JavaScriptКак работает метод endsWith() - JavaScriptКак работает метод concat() - JavaScriptКак работает метод codePointAt() - JavaScriptКак работает метод charCodeAt() - JavaScriptКак работает метод charAt() - JavaScript
Итератор в JavaScript
try...catch в JavaScriptError в JavaScript
Событие wheel в JavaScriptСобытие unload в JavaScriptСобытие touch в JavaScriptСобытие submit в JavaScriptСобытие scroll в JavaScriptСобытие reset в JavaScriptМетод .preventDefault() в JavaScriptСобытие mouseover в JavaScriptСобытие load в JavaScriptСобытие mouseout в JavaScriptСобытие keyup в JavaScriptСобытие keydown в JavaScriptСобытие invalid в JavaScriptСобытие input в JavaScriptСобытийная модель Event в JavaScriptОбъект события Event в JavaScriptСобытие DOMContentLoaded в JavaScriptСобытие dblclick в JavaScriptСобытие click в JavaScriptСобытие change в JavaScriptСобытие beforeunload в JavaScript
Как работает метод some() - JavaScriptКак работает метод reverse() - JavaScriptКак работает метод reduce() - JavaScriptКак работает метод map() - JavaScriptКак работает метод isArray() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод from() - JavaScriptКак работает метод forEach() - JavaScriptКак работает метод flatMap() - JavaScriptКак работает метод flat() - JavaScriptКак работает метод findIndex() - JavaScriptКак работает метод find() - JavaScriptКак работает метод filter() - JavaScriptКак работает метод every() - JavaScriptМассивы в JavaScript
Открыть базу знаний