Всё только о JavaScript

/ Статьи / Массивы в JavaScript

Поиск элемента в массиве

Для поиска элементов в браузерах Firefox, Opera версий 9.50 и старше, Chrome и Safari у массивов есть методы indexOf и lastIndexOf. Для Internet Explorer и младших версий Opera их можно реализовать, расширив прототип Array (сжатая версия файла).

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

var a = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5];
alert(a.indexOf(3));      // 2
alert(a.lastIndexOf(3));  // 7

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

var a = [3, '3'];
alert([3 == '3', 3 === '3', a.indexOf('3'), a.lastIndexOf(3)]);   // true,false,1,0

При этом, как и в прочих итераторах, перебираются только существующие элементы массива.

var a = [1];
a[5] = undefined;
alert(a[1] === undefined);  // true
// Но
alert(a.indexOf(undefined)); // 5