索引将搜索条目... MovieClip.name ==“foo”应该抛出编译器错误,因为MovieClip没有属性“名称”... myMovieClip.name ==“foo”将会是true,然后你会得到真正的索引,如果它在所有的数组中...
如果你真的需要索引,你将需要遍历数组... ...通过键......或者在增量循环中,如果数组是数字和密集的... 如果数组是关联的(字符串键使用),你需要势在必行用于-在循环中,因为过滤器和相关功能将只包括数字索引...
在数字阵列
,我建议以下两种方法之一:
//this will return an array of all indices
myArray.map(function (val:*,index:int,...rest):int { return (val.name == "foo") ? index : -1 }).filter(function (val:int,...rest):Boolean { return val != -1 });
//here a more reusable utility function ... you may want to put it to some better place ... just as an example ...
package {
public class ArrayUtils {
public static function indexOf(source:Array, filter:Function, startPos:int = 0):int {
var len:int = source.length;
for (var i:int = startPos; i < len; i++)
if (filter(source[i],i,source)) return i;
return -1;
}
}
}
//and now in your code:
var i:int = ArrayUtils.indexOf(myArray, function (val:*,...rest):Boolean { return val.name == "foo" });
希望有帮助...;)
greetz
个
back2dos
不是一个真正的答案,呃? – 2009-06-01 01:45:30