Come posso ottenere il numero di proprietà in un oggetto Actionscript generico? (Come la lunghezza Array)Numero oggetto Actionscript di proprietà
risposta
Dovrete ciclo su tutti gli elementi di contarli:
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
ancora più breve il codice qui:
var o:Object={foo:"hello",bar:"world",cnt:2};
trace(o.cnt); // output 2;
basta ricordarsi di aggiornare l'ultimo argomento nella elenco degli oggetti se mai gli viene aggiunto qualcosa. Questo è il principale svantaggio di questo approccio, penso. E ora, naturalmente, lo .cnt
non restituisce effettivamente la lunghezza dell'elenco vero, ma piuttosto la lunghezza dell'elenco - 1.
Questo potrebbe diventare difficile 'cnt' potrebbe diventare inaccurato nei casi in cui una proprietà sovrascrive una proprietà già esistente o quando una proprietà viene cancellata senza esistente. Pertanto, i controlli sarebbero necessari ogni volta che l'oggetto viene modificato. –
Sembra chiamare un'API migliore, come Object.keys() di javascript – hrabinowitz