Reputation: 155
I got the dynamic variable name doing
varname = "data" + newid + "['" + name + "']";
I would like to assign a value to the dynamic variable. I tried this
eval(varname) = value;
but it doesn't work. What do I need to do in order to assign a value to the dynamic variable?
Upvotes: 7
Views: 23728
Reputation: 91349
var data1 = { a: 200 };
var newid = 1;
var name = "a";
var varname = "data"+newid+"['"+name+"']";
var value = 3;
eval(varname + "=" + value); // change data1['a'] from 200 to 3
Having said that, eval
is evil. Are you really sure you need to use dynamic variables?
Upvotes: 8
Reputation: 943996
Don't use eval. Don't use dynamic variables.
If you have an unordered group of related data, store it in an object.
var myData = {};
myData[ newid + name ] = value;
although it looks like you are dealing with a dynamic object so
myData[ newid ] = myData[ newid ] || {};
myData[ newid ][ name ] = value;
Upvotes: 8