actionscript 3-是否有任何直接函数可以获取数组中所有可能匹配项的索引



我通常觉得indexOf非常有用,可以直接获得索引,而不需要为循环写3-4行来获得匹配。有没有类似的函数,比如indicsOf,来获得所有可能匹配的数组?或者可能有一个不同的名字,但作为一个快捷方式就像"indexOf"一样漂亮?

如果您不介意创建一个新的Array,您可以使用filter()函数-它对数组的每个项执行一个函数,然后返回一个新Array,其中包含返回true:的项

// our comparison function
function myCompFunction( element:*, index:int, array:Array ):Boolean
{
    return ( element > 10 );
}
var ar:Array = [5,10,15,20];
var ar2:Array = ar.filter( myCompFunction ); // ar2 is now [15,20]

这并不完全是标记,但话说回来,你不需要取消引用你的对象。

注意:因为它在每个元素上调用一个函数,所以自己循环数组仍然会更快

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html#filter()

不幸的是,没有这样的快捷方式。indexOf只适用于一个项目,对于多个项目没有其他选择。解决方案是显而易见的——遍历整个数组或对数组使用某种排序。也许还有其他方法,但它们几乎是一样的——遍历所有内容并进行检查。很抱歉这么说,但事情就是这样:)

最新更新