1

我有两个整数数组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].

我该怎么做?

4

6 回答 6

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;
    }
}
于 2012-05-21T12:02:55.520 回答
3

循环遍历数组中的项目:

for (var i = 0; i < a.length; i++) {
  if (a[i] == v) {
    return b[i];
  }
}
return -1; // not found
于 2012-05-21T12:03:20.920 回答
1
if(a.indexOf(v) > -1) {
  var id = a.indexOf(v);
  console.log(b[id]);
}

参见Array.indexOf的兼容性

于 2012-05-21T12:04:20.870 回答
1
var i = a.indexOf(v);
if (i !== -1)
{
    return b[i]
}
于 2012-05-21T12:09:49.833 回答
0

我想这会奏效。

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

>> test(1)
2

>> test(9)
undefined

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

于 2012-05-21T12:33:21.890 回答
0

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

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

于 2012-05-21T18:14:28.513 回答