Функция javascript inArray

Мне нужна функция javascript, которая может принимать строку и массив, и возвращает true, если эта строка находится в массиве.

 function inArray(str, arr){
   ...
 }

caveat: он не может использовать фреймворки javascript.

Ответы

Ответ 2

Вы можете просто создать функцию прототипа массива ala:

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

if (['test'].hasValue('test')) alert('Yay!');

Обратите внимание на использование '===' вместо '==', которое вы могли бы изменить, если вам нужно меньше определенного соответствия... В противном случае [3].hasValue('3') вернет false.

Ответ 3

Что-то вроде этого?

function in_array(needle, haystack)
{
    for(var key in haystack)
    {
        if(needle === haystack[key])
        {
            return true;
        }
    }

    return false;
}

Ответ 4

Посмотрите этот связанный вопрос. Вот код из голосующего ответа.

function contains(a, obj) {
  var i = a.length;
  while (i--) {
    if (a[i] === obj) {
      return true;
    }
  }
  return false;
}

Ответ 5

осторожно:

indexOf() использует частичные данные. если у вас есть "12", "1"

indexOf ('1') предоставит вам индекс "12", а не "1"