Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > поиск элемента в массиве


Автор: lumentek 2.8.2010, 09:38
Есть массив, например
var arr = ["a","b","c"];

Мне нужно проверить есть ли искомый элемент в данном мссиве.
p.s. в php есть замечательная функция in_array() для таких вещей

Автор: Amphiluke 2.8.2010, 09:41
Некоторые браузеры ввели поддержку метода indexOf для массивов, но полагаться на это всё же не стоит. Лучше напишите свою функцию с обходом массива в цикле.

Автор: CruorVult 2.8.2010, 09:48
Цитата(Amphiluke @  2.8.2010,  09:41 Найти цитируемый пост)
Лучше напишите свою функцию с обходом массива в цикле.

зачем свою писать, тут всё есть http://phpjs.org/functions/in_array:432

Автор: skyboy 2.8.2010, 09:56
Код

Array.prototype.inArray = function(value) {
 var i= 0;
 while(i< this.length) {
  if (this[i] == value) {
    return true;
  }
  i++;
 }
 return false;
}

использование:
Код

[1,2,3].inArray(3); // true
var ar = [7,8,9, [10, 11]];
ar.inArray(7); // true
ar.inArray(10); // false

Автор: ex3c 4.8.2010, 19:47
Код

Array.prototype.indexOf = Array.prototype.indexOf || function ( value ) {
    for ( var i = 0; i < this.length; i++ ) {
        if ( this[i] === value ) {
            return true;
        }
    }
    return false;
};


В W3C-браузерах будет задействован встроенный метод, ну  а в осле — тупой перебор массива.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)