索引將搜索條目... 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