我有两个整数数组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]
。
我该如何执行此操作?
答案 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]);
}
的兼容性
答案 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真的是一个很棒的函数集合,并向所有贡献者致敬,使它成为今天的样子。