在Javascript中是否可以使用“in”运算符检查数组中是否出现字符串?
例如:
var moveAnims = new Array("fly", "wipe", "flip", "cube");
alert("wipe" in moveAnims);
alert("fly " in moveAnims);
alert("fly" in moveAnims);
alert("Cube" in moveAnims);
或者是迭代执行此操作的唯一方法吗?
var moveAnims = new Array("fly", "wipe", "flip", "cube");
var targets = new Array("wipe", "fly ", "fly", "Cube");
for (var i=0; i<moveAnims.length; i++)
{
for (var j=0; j<targets.length; j++)
if (targets[j] == moveAnims[i])
alert("Found "+targets[j]);
}
答案 0 :(得分:2)
您应该可以使用.indexOf()
来获取对象的位置。检查它是否-1
以确定它是否存在。
答案 1 :(得分:2)
不,因为in
运算符检查对象的键,该对象在数组中为0, 1, 2, ...
。
但您可以使用indexOf
:
if(~moveAnims.indexOf("fly")) { // ~ is a useful hack here (-1 if not found, and
// ... // ~-1 === 0 and is the only falsy result of ~)
}
请注意,indexOf
在旧版浏览器中不可用,但有一些垫片。
答案 2 :(得分:1)
尝试indexOf
moveAnims.indexOf('string')