【问题标题】:javascript testing if value is in arrayjavascript测试值是否在数组中
【发布时间】:2010-10-01 12:58:55
【问题描述】:

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

【问题讨论】:

  • 如果您需要经常这样做,索引数组可能不是正确的数据结构。考虑使用关联数组/对象表示(它为您提供逻辑 in 运算符)。

标签: javascript jquery arrays


【解决方案1】:

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

【讨论】:

  • @bba,您可能希望在您的问题中添加类似的信息。以及您的问题的标签。 (编辑您的问题以添加“jquery”标签。)
  • @bba - 如果是这种情况,请务必使用 jQuery 标记您的问题,在许多情况下它会得到非常不同的答案。 :)
【解决方案2】:

这个有.indexOf(),但是IE

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

【讨论】:

    【解决方案3】:

    对于那些在 php 中并且应该在 javascript 中或者我还没有找到的函数,我去:http://phpjs.org

    如果你只是使用 javascript,你想要使用的函数是 in_array 这里:http://phpjs.org/functions/in_array:432

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

    【讨论】:

      猜你喜欢
      • 2011-08-20
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多