Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110

    come avere l'elenco delle proprietā di un oggetto?

    salve, vorrei sapere se e come sia possibile ricavare l'elenco delle proprietā di un oggetto, di cui non si conosca la struttura ma si possa tuttavia manipolare.

    spero di non aver scritto inesattezze,

    grazie in anticipo

  2. #2
    Intendi che vuoi ciclare l'oggetto? Si puō fare con un for in, ma per essere sicuri si utilizza insieme all'hasOwnProperty:
    codice:
    for(var i in obj) {
      if(obj.hasOwnProperty(i)) {
        //Fai qualcosa con i = nome proprietā e obj[i] = valore della proprietā
      }
    }

  3. #3
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110
    allora di quel poco di codice che hai scritto non ho capito niente (chiaramente č colpa mia)! per cui magari mi hai dato la risposta e non me ne sono resa conto. grazie mille in ogni caso.

    in caso contrario perdona, non mi sono spiegata bene perchč conosco poco/niente javascript.

    in pratica, se ho un oggetto chiamato ad esempio

    auto

    che possa avere diverse proprietā (almeno spero si chiamino cosė) come ad esempio

    auto.colore
    auto.modello
    ..
    ..

    e cosė via

    ecco, io ho l'oggetto auto ma non so nč quante nč quali proprietā abbia.

    per cui, č possibile avere.. non so, ad esempio un array che mi dice che c'č la proprietā colore, che c'č la proprietā modello.. l'elenco completo delle proprietā insomma.

    badate bene che potrei aver chiesto qualcosa di concettualmente sbagliato, nel tal caso apprezzerei se me lo fareste notare.

    grazie ancora

  4. #4
    Se il tuo scopo č quello di verificare l'esistenza di una proprietā non c'č alcun bisogno di ciclare l'oggetto, puoi benissimo verificarlo cosė:
    if(auto.hasOwnProperty("modello")) {
    //fai qualcosa
    }

  5. #5
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110
    Originariamente inviato da Mega69
    Se il tuo scopo č quello di verificare l'esistenza di una proprietā non c'č alcun bisogno di ciclare l'oggetto, puoi benissimo verificarlo cosė:
    if(auto.hasOwnProperty("modello")) {
    //fai qualcosa
    }
    e no č quello il punto. io vorrei proprio venire a sapere il nome preciso delle proprietā.
    so che puō sembrare strano.
    io sto utilizzando una libreria javascript fatta da altre persone, per cui a priori non so quanti e quali proprietā ogni oggetto abbia, devo ricavarlo dal codice.
    siccome mi sto perdendo nella sua comprensione, volevo facilitarmi la vita richiamando uno script in un determinato punto che mi dicesse perlappunto la "struttura" di un oggetto.
    spero ora di aver chiarito

    grazie

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da aeterna
    ...
    non mi sono spiegata bene perchč conosco poco/niente javascript.
    ...
    Originariamente inviato da aeterna
    .......
    io sto utilizzando una libreria javascript fatta da altre persone, per cui a priori non so quanti e quali proprietā ogni oggetto abbia, devo ricavarlo dal codice.
    siccome mi sto perdendo nella sua comprensione, ......
    Ricapitolando non conosci il javascript, e utilizzi uno script/libreria fatta da altri, e non capisci il funzionamento?
    Auguri!!!
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110
    Originariamente inviato da cavicchiandrea
    Ricapitolando non conosci il javascript, e utilizzi uno script/libreria fatta da altri, e non capisci il funzionamento?
    Auguri!!!
    non capisco il motivo di tanto sarcasmo, cmq grazie. penso che ci sia stata una prima volta per tutti in fondo, e non sono certo io ad aver scelto di procedere in questo modo, perō devo farlo.

    al di lā di questo, che avevo messo per far capire il senso della domanda, che tuttavia penso possa benissimo avere ragion d'essere a PRESCINDERE da cosa faccio o non faccio io, non riesco a trovare in rete risposta a quello che cerco, quindi forse ho chiesto una cosa impossibile da fare. anche in tal caso non mi spiacerebbe comunque avere una conferma.

    grazie

  8. #8
    Riprendo il primo script postato da Mega69:

    codice:
    var obj={se_fosse_cane:"bau",se_fosse_gatto:"miao",se_fosse_tardi:function(){alert("ciao")}};
    var str='';
    
    for(var x in obj) {
      if(obj.hasOwnProperty(x)) {
        //str+=x+"->"+obj[x]+"
    \n";
        str+=x+"
    \n";
      }
    }
    document.write(str);
    prova ad usare questo script una volta inclusa la tua libreria. Magari prima stampati solo la proprietā e non il suo valore (per stampare entrambi decommenta la riga commentata).
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  9. #9
    Utente bannato
    Registrato dal
    Jan 2004
    Messaggi
    110
    Originariamente inviato da AnĒkin
    Riprendo il primo script postato da Mega69:

    codice:
    var obj={se_fosse_cane:"bau",se_fosse_gatto:"miao",se_fosse_tardi:function(){alert("ciao")}};
    var str='';
    
    for(var x in obj) {
      if(obj.hasOwnProperty(x)) {
        //str+=x+"->"+obj[x]+"
    \n";
        str+=x+"
    \n";
      }
    }
    document.write(str);
    prova ad usare questo script una volta inclusa la tua libreria. Magari prima stampati solo la proprietā e non il suo valore (per stampare entrambi decommenta la riga commentata).
    grazie infinite anakin, e grazie infinite a mega69.

    scusami mega69, non avevo capito che il tuo codice era tutto quello che mi serviva per andare avanti, ne avevo frainteso lo scopo.

    grazie anakin, l'esempio che hai integrato č stato davvero chiarificatore.

    di cuore.

  10. #10
    Mah, ancora non riesco a capire a che cosa ti serva ottenere un array con tutte le proprietā

    Forse a scopo di debug?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.