2011-01-15 23 views

Respuesta

20

Tendrá que bucle sobre todo elemento a contarlos:

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

Parece que pide una API mejor, como Object.keys() – hrabinowitz

0

Incluso código más corto aquí:

var o:Object={foo:"hello",bar:"world",cnt:2}; 
trace(o.cnt); // output 2; 

Sólo recuerde para actualizar el último argumento en el lista de objetos si alguna vez se le agrega algo. Esa es la principal desventaja de este enfoque, creo. Y ahora, por supuesto, el .cnt en realidad no devuelve la longitud verdadera de la lista, sino que es la longitud de la lista: 1.

+0

de JavaScript Esto podría ponerse tramposo 'cnt' podría volverse inexacto en los casos en que una propiedad sobrescribe una propiedad ya existente, o cuando una propiedad se elimina sin existir. Por lo tanto, se necesitarían verificaciones cada vez que se modifique el objeto. –

Cuestiones relacionadas