Jak mogę uzyskać liczbę właściwości w ogólnym obiekcie Actionscript? (Podobnie jak długość Array)Numer obiektu Actionscript właściwości
Odpowiedz
Trzeba będzie pętli nad wszystkimi elementu policzyć je:
function objectLength(myObject:Object):int {
var cnt:int=0;
for (var s:String in myObject) cnt++;
return cnt;
}
var o:Object={foo:"hello", bar:"world"};
trace(objectLength(o)); // output 2
Nawet krótszy kod tutaj:
var o:Object={foo:"hello",bar:"world",cnt:2};
trace(o.cnt); // output 2;
Wystarczy pamiętać, aby zaktualizować bardzo ostatni argument w lista obiektów, jeśli kiedykolwiek coś zostanie do niej dodane. To chyba główny minus tego podejścia. A teraz oczywiście .cnt
nie zwraca rzeczywistej długości listy, ale jest to długość listy - 1.
być trudnym. 'cnt' może stać się niedokładne w przypadkach, gdy właściwość zastępuje już istniejącą właściwość lub gdy właściwość zostanie usunięta bez istniejącej. Tak więc kontrole będą potrzebne za każdym razem, gdy obiekt zostanie zmodyfikowany. –
Wygląda na to, że warto wzywać lepszego API, takiego jak Object.keys obiektu javascript() – hrabinowitz