if([array]中的[instance])是否可以在ActionScript 3.0中使用?

时间:2013-02-19 15:45:32

标签: actionscript-3 flash if-statement

是否可以查看实例是否在这样的数组变量中?

var list=[];
var instance= new SomeClass();
list.push(instance);
if( instance in list){ trace("nice"); ]

或者你必须运行“for loop”来查看实例是否在数组中?像

for(var i=0; i<list.length; i++){
  if(list[i]==instance){ trace("ok"); }
}

2 个答案:

答案 0 :(得分:4)

您可以使用

list.indexOf(instance) ;

它必须返回数组中元素的索引。 如果它返回-1,则表示找不到该值。

答案 1 :(得分:1)

如果要检查数组是否包含特定项目,请使用indexOf方法:

if (list.indexOf(instance) > -1) {
    //do stuff
}

或者,Array.contains的常用简写是:

if (~list.indexOf(instance)) {
    //do stuff
}

~运算符会将-1的值变为0(falsey),将所有其他值变为truthy。