Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 10 Enero 2020, 04:14 am



Título: [Pregunta]: ¿Como definir variables a través de un for? (javascript)
Publicado por: Leguim en 10 Enero 2020, 04:14 am
Buenas noches,

estoy teniendo serios problemas y es que no puedo lograr definir variables a través de un for en javascript. Lo que hago es:

Código
  1. var array = ['variable_1', 'variable_2'];
  2.  
  3. for(var i = 0; i < array.length; i++)
  4. {
  5.    var array[i] = i; // La idea es crear la variable "var variable_1 = 0; y var variable_2 = 1;"
  6. }
  7.  


Título: Re: [Pregunta]: ¿Como definir variables a través de un for? (javascript)
Publicado por: AlbertoBSD en 10 Enero 2020, 04:40 am
Basicamnete necesitas sustituir ese arreglo por un objeto y iterar sobre las propiedades del objeto:

Código
  1. var arreglo = {'variable_1': 0, 'variable_2': 0}; //Este "arreglo" realmente es un objeto
  2. var keys =  Object.keys(arreglo);
  3.  
  4. for(var i = 0; i < keys.length; i++)
  5. {
  6.    arreglo[keys[i]] = i;
  7. }
  8. console.log(arreglo);
  9.  

Saludos!


Título: Re: [Pregunta]: ¿Como definir variables a través de un for? (javascript)
Publicado por: @XSStringManolo en 10 Enero 2020, 08:11 am
En el 99.99% no es necesario declarar variables dinámicamente. Probablemente lo estés haciendo mal.

Las variables son propiedades del objeto window en el navegador. Con la sintaxis del operador array puedes definir una propiedad a la que acceder directamente por su nombre. Al igual que no haces window.alert() y haces alert() llanamente.
Código
  1. for (var i = 0; i < tuArray; ++i) {
  2.  
  3. window[tuArray[i]] = + "valor asignado";
  4.  
  5. }

  
Si necesitas algo más enrevesado o no tienes el objeto window usa eval.
Código
  1. var nombreVar = 'value';
  2.  
  3. for(var i = 1; i < numVarsPorDeclarar; ++i) {
  4.  
  5. eval("var " + tuArray[i] + " = " + "valor asignado " + ";");
  6.  
  7. }
Lo puedes usar directamente desde la barra del navegador convinado con javascript:


Título: Re: [Pregunta]: ¿Como definir variables a través de un for? (javascript)
Publicado por: #!drvy en 10 Enero 2020, 11:02 am
Citar
En el 99.99% no es necesario declarar variables dinámicamente. Probablemente lo estés haciendo mal.

This. Es una práctica muy muy shady. A nivel del uso de goto en ciertos lenguajes.


Saludos