Для поиска элементов в браузерах 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