javascript测试值是否在数组中

时间:2010-10-01 12:58:55

标签: javascript jquery arrays

在javascript中是否有一个函数来执行此操作 - 测试一个给定的值(在我的情况下是一个字符串)是否存在于数组(字符串)中?我知道我可以循环遍历每个值,但我想知道js是否有这方面的简写。

3 个答案:

答案 0 :(得分:3)

jquery.inArray()方法。这是我所知道的最好的......

答案 1 :(得分:2)

对此有.indexOf(),但IE< 9不支持它:

if(array.indexOf("mystring") > -1) {
  //found
}

来自同一个MDC documentation page,这里包括(使用前)使IE工作的内容:

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

.indexOf()返回找到字符串的数组中的索引,如果找不到则返回-1

答案 2 :(得分:0)

对于php中的函数,应该是javascript或者我还没找到,我会去:http://phpjs.org

如果你只是使用javascript,你想要使用的功能是in_array:http://phpjs.org/functions/in_array:432

否则,请在此页面上使用jQuery解决方案。