2011-01-15 17 views

Odpowiedz

20

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 
+1

Wygląda na to, że warto wzywać lepszego API, takiego jak Object.keys obiektu javascript() – hrabinowitz

0

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.

+0

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. –

Powiązane problemy