indeks będzie wyszukać wpis ... MovieClip.name == „foo” należy wyrzucić błąd kompilatora, ponieważ MovieClip nie posiada właściwość „imię” ... myMovieClip.name == „foo” będzie prawda, a następnie dostaniesz indeks prawdziwe, jeśli jest w tablicy w ogóle ...
jeśli naprawdę potrzebujesz indeks, trzeba iteracyjne nad tablicy ... przez klucz ... lub przyrostowego pętli, jeśli tablica jest numeryczne i gęsty ... jeśli tablica jest łączne (ciąg klawiszy używane), które koniecznie trzeba użyć dla w pętli, ponieważ funkcje filtrów i pokrewne obejmie tylko indeksy numeryczne ...
w tablicy numerycznej, polecam jedną z dwóch następujących metod:
//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" });
nadzieję, że pomogło ...;)
greetz
back2dos
Niezupełnie odpowiedź, eh? –
Oryginalny pytanie, „Zarówno indexOf() powyżej nie działa”, ale mam podając błąd powodujący, że udało indexOf – Unreality