I'm looking for a way to create variables dynamically in javascript
eg
I have a loop
for (i=0;i<15;i++){
}
now I need to create variables dynamically eg var "a"+i for eavh value in the loop. Is this possible and how?
I'm looking for a way to create variables dynamically in javascript
eg
I have a loop
for (i=0;i<15;i++){
}
now I need to create variables dynamically eg var "a"+i for eavh value in the loop. Is this possible and how?
Since you are dealing with numeric, sequential variables — use an array.
var foo = [];
for (var i = 0; i < 15; i++) {
foo[i] = something;
}
To fulfill your exact requirement, I know only eval():
eval("varname"+i+" = 'Hello';");
on the other hand, you could consider using an array. Much cleaner: They don't clutter the global namespace, and you can order variables neatly in groups.
arrayname[i] = value;
It would be unwise to pollute your namespace with such a large number of variables. Use an array instead.
window mostly represents the global object on browsers. You can use either that or scope it to your own objects.
var my = {};
for(var i = 0; i < 15; i++) {
my["a" + i] = "value: " + i;
}
console.log(my.a4); // "value: 4"
If we presume that you will need several variables related to each iteration ([foo1,bar1], [foo2, bar2]...) then there are two approaches
Use arrays
var foo = [], bar = [];
foo[1] = "foo";
bar[1] = "bar";
Use an object
var myVars = {};
myVars["foo" + 1] = "foo";
myVars["bar" + 1] = "bar";
That last one could also be written as
myVars.bar1 = "bar";
Do not use eval as some has suggested.
I would consider using array instead of variables. Array has push method which adds a new element to array.