javascript - 检查var是否在数组中

时间:2012-05-21 12:00:07

标签: javascript arrays

我有两个整数数组a=[1,3,5,7]b=[2,4,6,8]。 现在我需要检查给定的var $v是否在a中,如果是,则从b返回等效元素。例如:

if $v in a (and $x is its position) return $b[$x]

我该如何执行此操作?

6 个答案:

答案 0 :(得分:7)

indexOf方法将返回找到项目的数组的索引,如果找不到则返回-1。

var i = a.indexOf(v);
if (i != -1)
{
    return b[i]
}

编辑:如果您的浏览器没有,则会添加该方法。

if (!Array.prototype.indexOf)
{
    Array.prototype.indexOf = function(x)
    {
        var i;
        for (i = 0; i < this.length; i++)
        {
            if (this[i] === x)
            {
                return i;
            }
        }
        return -1;
    }
}

答案 1 :(得分:3)

循环遍历数组中的项目:

for (var i = 0; i < a.length; i++) {
  if (a[i] == v) {
    return b[i];
  }
}
return -1; // not found

答案 2 :(得分:1)

if(a.indexOf(v) > -1) {
  var id = a.indexOf(v);
  console.log(b[id]);
}

查看Array.indexOf

的兼容性

答案 3 :(得分:1)

var i = a.indexOf(v);
if (i !== -1)
{
    return b[i]
}

答案 4 :(得分:0)

我想这会奏效。

>> function test(k){ return b[a.indexOf(k)]}

>> test(1)
2

>> test(9)
undefined

在js中,indexOf总是返回一个整数,通过调用一个带整数的数组(如A[3]),它总是返回一个值或undefined。如果要确保应用程序代码没有被破坏,请显式检查undefined值。

答案 5 :(得分:0)

您可能需要尝试以下功能。 PHP.js真的是一个很棒的函数集合,并向所有贡献者致敬,使它成为今天的样子。

http://phpjs.org/functions/in_array:432