Ho creato una mappa google basata sui dati con icone diverse che vengono assegnate alla mappa in base al tipo di elemento individuato. Quindi, se ho 5 tipi di punti di riferimento, e ognuno ha un'icona diversa (negozio, biblioteca, ospedale, ecc.), Quello che mi piacerebbe fare è generare gli oggetti icona di Google in modo dinamico. Stavo pensando qualcosa del genere:C'è un modo semplice per creare variabili dinamiche con Javascript?
types = array('hospital','church','library','store',etc);
var i=0;
while (i<=types.length) {
var landmark + i = new google.maps.Icon();
landmark.image = "icon" + i + ".png";
i++;
}
tuttavia, come probabilmente avete indovinato, questo non funziona. Ho anche provato ad utilizzare eval, in questo modo:
while (i<=types.length) {
doIcon(i);
i++;
}
function doIcon(i){
eval("var landmark" + i + " = new.google.maps.Icon();");
return eval("landmark" + i);
}
, ma non ha funzionato either-- Apprezzerei tutti i puntatori sulla generazione di variabili JavaScript in modo dinamico. Deve essere puro js, potrei farlo in PHP ma non è un'opzione qui.
Grazie!
+1 - Benvenuti in StackOverflow :-) –
JavaScript è davvero un linguaggio dinamico. Raramente hai bisogno di usare l'istruzione eval per cose come questa, perché puoi scrivere principalmente quello che vuoi purché la sintassi sia corretta, e se ciò che hai scritto non esiste, otterrai un errore di runtime. Una cosa carina di javascript è l'abilità che window.close è la stessa della finestra di scrittura ["chiudi"]. Quindi puoi anche scrivere una finestra ["close"](); o var c = "close"; finestra [c](); – Alxandr