javascript函数inArray

时间:2009-05-20 23:47:10

标签: javascript arrays

我需要一个可以接受字符串和数组的javascript函数,如果该字符串在数组中,则返回true ..

 function inArray(str, arr){
   ...
 }
警告:它不能使用任何javascript框架。

5 个答案:

答案 0 :(得分:18)

你可以制作一个数组原型函数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。

答案 1 :(得分:8)

这样的东西?

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

    return false;
}

答案 2 :(得分:8)

答案 3 :(得分:1)

看看this related question。这是来自最高投票答案的代码。

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

答案 4 :(得分:-1)

小心:

indexOf()使用部分数据。如果你有'12','1'

indexOf('1')会得到'12'的索引而不是'1'