[Pregunta]: ¿Como definir variables a través de un for? (javascript)

Iniciado por Leguim, 10 Enero 2020, 04:14 AM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

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 (javascript) [Seleccionar]

var array = ['variable_1', 'variable_2'];

for(var i = 0; i < array.length; i++)
{
    var array[i] = i; // La idea es crear la variable "var variable_1 = 0; y var variable_2 = 1;"
}

AlbertoBSD

Basicamnete necesitas sustituir ese arreglo por un objeto y iterar sobre las propiedades del objeto:

Código (javascript) [Seleccionar]

var arreglo = {'variable_1': 0, 'variable_2': 0}; //Este "arreglo" realmente es un objeto
var keys =  Object.keys(arreglo);

for(var i = 0; i < keys.length; i++)
{
    arreglo[keys[i]] = i;
}
console.log(arreglo);


Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

@XSStringManolo

#2
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 (javascript) [Seleccionar]
for (var i = 0; i < tuArray; ++i) {

window[tuArray[i]] = + "valor asignado";

}


 
Si necesitas algo más enrevesado o no tienes el objeto window usa eval.
Código (javascript) [Seleccionar]
var nombreVar = 'value';

for(var i = 1; i < numVarsPorDeclarar; ++i) {

eval("var " + tuArray[i] + " = " + "valor asignado " + ";");

}
Lo puedes usar directamente desde la barra del navegador convinado con javascript:

#!drvy

CitarEn 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