How to assign a value to a dynamic variable using eval?

I got the name of the dynamic variable by doing

varname = "data" + newid + "['" + name + "']"; 

I would like to assign a value to a dynamic variable. I tried this

 eval(varname) = value; 

but that will not work. What do I need to do to assign a value to a dynamic variable?

+6
source share
2 answers
 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?

+6
source

Do not use eval. Do not use dynamic variables.

If you have an unordered group of related data, save it in the object.

 var myData = {}; myData[ newid + name ] = value; 

although it looks like you are dealing with a dynamic object, therefore

 myData[ newid ] = myData[ newid ] || {}; myData[ newid ][ name ] = value; 
+7
source

Source: https://habr.com/ru/post/924565/


All Articles