It is currently 8 December 2024, 3:42 Advanced search

Indirizzamento indiretto

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

Indirizzamento indiretto

Postby AngeloSantospago » 15 September 2023, 8:45

Salve e tutti, c'è un modo per riferirsi alle variabili o agli oggetti utilizzando un "riferimento indiretto"?
Mi spiego meglio.

var pippo = "Pippo è bello";
app.alert(pippo); ► produce il messaggio a video "Pippo è bello"

Invece, vorrei fare una cosa del genere:
var pippo = "Pippo è bello";
var punt = "pippo";
app.alert(punt); ► vorrei che producesse a video il contenuto della variabile puntata da "punt": "Pippo è bello".

Mi servirebbe questo per poter "puntare" agli elementi dell'app anche tramite stringhe inserite dall'esterno, come una lista di parametri per una determinata azione.
Ad esempio:
var pippo = "Pippo";
var pluto = "Pluto";
var paperino = "Paperino";
var personaggio = app.prompt("Scrivi il personaggio:"); ► l'utente scrive: paperino
app.alert(personaggio); ► "Paperino"

Spero di essermi spiegato.
Ringrazio tutti per la pazienza!!
AngeloSantospago
 
Posts: 21
Joined: 14 July 2023, 14:45

Re: Indirizzamento indiretto

Postby d.termini » 15 September 2023, 9:41

Code: Select all
var scelte = {
  a: "ciao pippo",
  b: "ciao pluto",
  c: "ciao paperino"
};

var punt = app.prompt("Scegli a, b o c:");

app.alert(scelte[punt]);


Ovviamente la scelta deve esistere altrimenti darà errore.
Nomi e valori a tua discrezione.
d.termini
 
Posts: 1511
Joined: 13 November 2017, 8:41

Re: Indirizzamento indiretto

Postby AngeloSantospago » 15 September 2023, 10:10

Ti ringrazio per la risposta.
In pratica hai utilizzato un array associativo, dove utilizzi una stringa come chiave.
Sarebbe quindi la stessa cosa se utilizzassimo un array normale, dove inseriamo da prompt direttamente l'ordinale dell'elemento che vogliamo selezionare.
Tutto chiaro. Grazie.
Io, però, intendevo andare oltre: ovvero utilizzare una stringa che contiene direttamente l'oggetto a cui fare riferimento.
Ti faccio un altro esempio.
Nell'app c'è la proprietà: tokenRecupero.
Se scrivo:
Code: Select all
app.alert(app.tokenRecupero)

mi visualizza il contenuto della proprietà.
Se da esterno inserisco il nome della proprietà:
Code: Select all
let oggettoDaVisualizzare = app.prompt("Inserisci cosa vuoi visualizzare:"); ► "app.tokenRecupero"
app.alert(oggettDaVisualizzare);

dovrebbe visualizzare proprio il contenuto della proprietà indicata, ovvero proprio il token.
Oppure:
Code: Select all
let oggettoDaVisualizzare = app.prompt("Inserisci cosa vuoi visualizzare:"); ► "app.Organizzazione.nome"
app.alert(oggettDaVisualizzare);

dovrebbe visualizzare proprio il nome dell'organizzazione.
AngeloSantospago
 
Posts: 21
Joined: 14 July 2023, 14:45

Re: Indirizzamento indiretto

Postby d.termini » 15 September 2023, 10:23

Si può fare, javascript lascia fare qualsiasi porcata puoi immaginare, ma è abbastanza rischioso.
d.termini
 
Posts: 1511
Joined: 13 November 2017, 8:41

Re: Indirizzamento indiretto

Postby AngeloSantospago » 15 September 2023, 10:37

d.termini wrote:Si può fare, javascript lascia fare qualsiasi porcata puoi immaginare, ma è abbastanza rischioso.

Ahahah!!!
AngeloSantospago
 
Posts: 21
Joined: 14 July 2023, 14:45

Re: Indirizzamento indiretto

Postby d.termini » 15 September 2023, 12:03

Comunque la soluzione è praticamente la stessa, spezzi la stringa di input sui "." e vai a cercarti ogni variabile.
Ad esempio se hai app.pippo.altezza dovrai ricomportelo in app[pippo][altezza]
Poi ci sono varie funzioni e costrutti che ti aiutano a farlo ma sono da studiare per bene.
Potrebbe anche esserci un "eval", ma dipende se è disattivato dal framework, perché è un buco di sicurezza incredibilmente potente.
d.termini
 
Posts: 1511
Joined: 13 November 2017, 8:41

Re: Indirizzamento indiretto

Postby AngeloSantospago » 15 September 2023, 13:08

Capisco: effettivamente, a pensarci bene, permettere dall'esterno di raggiungere le parti interne di un'applicazione, oppure permettere di eseguire, di fatto, dei comandi, diciamo che è poco raccomandabile.
Ok! Tutto chiaro! Ti ringrazio davvero tantissimo!!!
AngeloSantospago
 
Posts: 21
Joined: 14 July 2023, 14:45


Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 1 guest

cron