Newsgroup: it.comp.lang.javascript
Titolo: accedere dinamicamente alle proprietà di un oggetto

Ciao a tutti,
Volevo chiedervi se e, se sì, come era possibile accedere a tutte le
proprietà di un oggetto.
Esempio: ho un Obj Pippo con proprietà Pippo.a Pippo.bccf Pippo.zz99 bla bla
bla. Vorrei poterlo scrivere in maniera generica tipo
var i=0;
ciccio= newArray();
for (qualcosa in Pippo) {
        var ciccio[i] = Pippo.qualcosa;
}
...so che non si può fare in quanto non interpreterebbe il tutto come la
proprietà "qualcosa" (letteralmente non come variabile) di Pippo. Ho
provato anche Pippo.[qualcosa] ma non gli piace e Pippo.["qualcosa"] non
può funzionare.
C'è una soluzione?
Grazie ad eventuali anime pie,
Ale

 C'è una soluzione?
var i = 0;
var ciccio = new Array();
for (var qualcosa in Pippo)
{
   ciccio[i++] = Pippo[qualcosa]; // oppure  = Pippo.qualcosa;
}
-- 
La parte migliore dell'innamoramento e' quando ancora non
immagini che l'oggetto del tuo amore ha tutt'altri piani.

errore mio scusate! L'errore era altrove.
:-(
che brutto come primo post!! :-(
Scusate,
Ale

 che brutto come primo post!! :-(
abbiamo cominciato tutti da zer0 ;)


   ciccio[i++] = Pippo[qualcosa]; // oppure  = Pippo.qualcosa;
mumble mumble, quell'oppure non funziona!
--
mg

 for (var qualcosa in Pippo)
Se non ricordo male non è compatibile IE4 (giusto come precisazione, nel
caso a qualcuno interessi ancora questa compatibilità)
-- 
"Voi abili a tenere sempre un piede qua e uno là
 avrete un avvenire certo in questo mondo qua
 però la dignità
 dove l'avete persa?"
									    V.R.

 mumble mumble, quell'oppure non funziona!
anche a me puzza un po'...magari un eval?
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.

 caso a qualcuno interessi ancora questa compatibilità)
Per amor di precisione, allora si dovrebbe dire che non è "compatibile" (o
meglio, supportato) nelle versioni antecedenti alla 5 dello script engine. Su
Windows, browser e script engine sono indipendenti. Posso aggiornare l'ultimo
senza necessariamente farlo col primo; anche se difficilmente succede con gli
end-user (ma ci possono essere applicativi che richiedono una certa versione
di script engine per il WSH e magari te lo vanno a sostituire.. capita).
-- 
- Lei ha precedenti di pazzia in famiglia?
- Mio nonno credeva d' essere San Giuseppe...
- Io ci metterei un bel SI!

 anche a me puzza un po'...magari un eval?
Penso che intendesse mostrare solo il nesso che c'era tra la square bracket
notation e la dot notation; spesso i novizi scambiano la prima come
riferimento ad elementi di array.
-- 
- Ray è completamente partito Egon, di te che ne è restato?
- Mi dispiace Venkman,il terrore travalica la mia capacità di razionalizzare

 riferimento ad elementi di array.
diciamo che mi sono espresso malissimo. :P
Pippo["zz99"] e' equivalente a Pippo.zz99
evidentemente se valorizziamo la variabile qualcosa in un ciclo for ... in
occorre valutarla:
Pippo[qualcosa] e' equivalente a eval("Pippo." + qualcosa)


 diciamo che mi sono espresso malissimo. :P
Un pochetto.. :) Ma avevo intuito il concetto, conoscendoti sapevo che non
poteva essere un errore di quel tipo; ma che volevi solo sottolineare
l'equivalenza tra le due notazioni.
-- 
- Vuoi tu questo corpo?
- E' una domanda trabocchetto?