Foros del Web » Programando para Internet » Javascript »

Tomar string como nombre de variable

Estas en el tema de Tomar string como nombre de variable en el foro de Javascript en Foros del Web. Hola! Me estoy iniciando en JS y me ha surgido una duda existencial que está pudiendo con migo jeje He intentado buscar información sobre el ...
  #1 (permalink)  
Antiguo 29/12/2012, 11:10
 
Fecha de Ingreso: mayo-2010
Mensajes: 21
Antigüedad: 13 años, 11 meses
Puntos: 2
Tomar string como nombre de variable

Hola! Me estoy iniciando en JS y me ha surgido una duda existencial que está pudiendo con migo jeje He intentado buscar información sobre el tema pero, o no lo he sabido buscar bien, o es una tontería que solo yo pregunto..

La cuestión es que tengo el siguiente código en el que tengo cinco arrays y quiero filtrar los elementos indicando el nº de año (1-5) y la posición del elemento a filtrar dentro del array. Pero no se como hacer para que la concatenación "ano"+nano+"["+nmes+"]" me la tome como una variable y no como una cadena de caracteres, es decir, que no me imprima por ejemplo "ano1[0]", sino que me imprima "12"

Código javascript:
Ver original
  1. <script type="text/javascript">
  2.     var ano1 = [12,65,58,45,84,65,78,15,16,54,12,48];
  3.     var ano2 = [15,68,48,48,24,15,48,75,26,64,42,78];
  4.     var ano3 = [52,85,28,55,44,62,71,17,14,51,13,28];
  5.     var ano4 = [22,25,55,75,44,75,77,85,86,55,42,44];
  6.     var ano5 = [88,44,55,66,22,45,18,11,22,54,22,11];
  7.            
  8.     function filtrar(){
  9.         var nano = prompt("Introduzca el año (1-5):","");
  10.         var nmes = prompt("Introduzca el mes (0-11):","");
  11.         document.write("ano"+nano+"["+nmes+"]");
  12.     }
  13. </script>

Agradecería muchísimo vuestra ayuda ;)

Felices fiestas!
  #2 (permalink)  
Antiguo 29/12/2012, 12:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Tomar string como nombre de variable

Es un tema recurrente. Prueba así:
Código Javascript:
Ver original
  1. window["ano" + nano][nmes]
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 29/12/2012, 17:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 21
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Tomar string como nombre de variable

Funcina! muchas gracias!!

Lo que me pasa ahora es que quiero hacer una función que me muestre todos los registros almacenados en los arrays, hago lo mismo que me has puesto pero con otras variables y no funciona.. :$ Qué puede ser? y de paso si no es mucho molestar me puedes explicar brevemente lo que hace window[], he intentado buscarlo y solo lo he encontrado seguido de propiedades (windows.closed, window.history...). Gracias de antemano ;)

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     var ano1 = [12,65,58,45,84,65,78,15,16,54,12,48];
  3.     var ano2 = [15,68,48,48,24,15,48,75,26,64,42,78];
  4.     var ano3 = [52,85,28,55,44,62,71,17,14,51,13,28];
  5.     var ano4 = [22,25,55,75,44,75,77,85,86,55,42,44];
  6.     var ano5 = [88,44,55,66,22,45,18,11,22,54,22,11];
  7.     var meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
  8.     function mosReg(){
  9.     /*La función mosReg devuelve todos los registros almacenados*/
  10.         for(i=1;i<6;i++){
  11.             document.write("Año "+i+":<br>");
  12.             for(j=0;j<12;j++){
  13.             document.write(meses[j]+": "+window["ano"+i][j]+"mm ");
  14.             }
  15.         }
  16.     }              
  17. </script>
  #4 (permalink)  
Antiguo 29/12/2012, 18:22
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Tomar string como nombre de variable

Todas las variables del ámbito global están en el objeto window, y quizás sea esa la razón por la que no te funcione, puede que estés intentando con variables de ámbito local.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Etiquetas: string, tomar, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:28.