Очень часто нужно искать определённый элемент в массиве. Поиск элемента в массиве javascript осуществляет функция inArray()
Функция возвращает позицию элемента в массиве. В случае отсутствия элемента в массиве функция вернёт -1. Обратите внимание что функция не возвращает false или true.
Когда применяют функцию inArray()? Оычно наполняют массив IDшниками и потом этот массив передаётся в ajax-запрос. Бывает так, что нужно сделать массив с запрещенными данными и сравнивать новую информацию с этим массивом. О массивах читайте в статье массивы в javascript
Поиск в массиве или строке на JavaScript и jQuery
Поиск в строке или массиве. При поиске в массиве – возвращает индекс. При поиске в строке – возвращает позицию первого вхождения.
Возвращает -1 если ничего не найдено.
Строгое сравнение. Возвращает индекс элемента. Возвращает -1 если ничего не найдено.
В статье рассказывается о том, как использовать методы JavaScript indexOf и lastIndexOf для определения расположения элемента внутри массива.
Содержание
- Знакомство с методом indexOf
- Примеры применения метода indexOf()
- Знакомство с методом lastIndexOf()
- Примеры использования метода lastIndexOf()
Знакомство с методом indexOf
Чтобы определить расположение элемента в массиве, можно воспользоваться методом indexOf() . Он возвращает индекс первого вхождения элемента, либо -1 , если он не найден.
Ниже приведен синтаксис метода indexOf() :
Метод indexOf() принимает два аргумента. searchElement -это элемент, который нужно найти в массиве. fromIndex – это индекс массива, с которого нужно начать поиск.
Аргумент fromIndex в качестве значения может принимать как положительное, так и отрицательное целое число. Если значение аргумента fromIndex будет отрицательным, метод indexOf() начнет поиск по всему массиву плюс значение fromIndex . Если опустить аргумент fromIndex , то метод начнет поиск с элемента 0 .
Учтите, что метод JavaScript array indexOf() при сравнении searchElement с элементами в массиве, использует алгоритм строгого равенства , схожий с оператором “ тройное равно ” (===) .
Примеры применения метода indexOf()
Предположим, что есть массив scores , в котором содержится шесть чисел:
В следующем примере метод indexOf() используется для поиска элементов в массиве scores :
В примере используется fromIndex с отрицательными значениями:
Предположим, что есть массив объектов. У каждого из них два свойства: name и age :
Следующие выражение возвращает -1 , даже если у первого элемента массива guests и searchElement будут одинаковые значения свойств name и age . Так как это два разных объекта:
Иногда нужно находить индексы всех упоминаний элемента в массиве. В приведенном ниже примере для этого в функции find() используется метод массива JavaScript indexOf() :
В следующем примере функция find() используется для возврата массива с позициями числа 10 в массиве scores :
Знакомство с методом lastIndexOf()
У массивов есть еще один метод — lastIndexOf() , который предлагает почти тот же функционал, что и indexOf() .
Синтаксис метода lastIndexOf() :
Метод возвращает индекс последнего вхождения searchElement в массиве. Если элемент не найден, будет возвращено значение -1 .
В отличие от метода JavaScript indexOf() , lastIndexOf() сканирует массив в обратном направлении, начиная от значения fromIndex .
Представленное ниже выражение возвращает последние индексы чисел 10 и 20 в массиве scores :
Примеры использования метода lastIndexOf()
Так как число 50 не находится в массиве, следующее выражение вернет -1 .
Мы научились использовать методы JavaScript indexOf() string и lastIndexOf() для поиска элементов в массиве.
Данная публикация представляет собой перевод статьи « JavaScript Array indexOf and lastIndexOf: Locating an Element in an Array » , подготовленной дружной командой проекта Интернет-технологии.ру
Источник: