我得到的動態變量名做如何使用eval將值賦給動態變量?
varname = "data" + newid + "['" + name + "']";
我想一個值分配給動態變量。我試過這個
eval(varname) = value;
但它不起作用。爲了給動態變量賦值,我需要做什麼?
我得到的動態變量名做如何使用eval將值賦給動態變量?
varname = "data" + newid + "['" + name + "']";
我想一個值分配給動態變量。我試過這個
eval(varname) = value;
但它不起作用。爲了給動態變量賦值,我需要做什麼?
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
話雖如此,eval
是邪惡的。你確定你需要使用動態變量嗎?
爲了我的目的,我想給動態變量賦值而不是獲得它的值。我該怎麼做? –
@juria_roberts:我明白了,那麼使用'eval(varname +「=」+ value)'。另外考慮使用@ Quentin的解決方案,而不是使用動態變量。 –
非常感謝 –
請勿使用eval。不要使用動態變量。
如果您有一組無關的數據,請將其存儲在一個對象中。
var myData = {};
myData[ newid + name ] = value;
雖然看起來你是一個動態對象處理這樣
myData[ newid ] = myData[ newid ] || {};
myData[ newid ][ name ] = value;
不要使用受詛咒的動態變量。使用對象。特別是'data [newid] [name]',並且也適用於賦值。 – delnan
實際上我已經通過php插入了很多jsons到我的javascript中,名稱格式爲datafirst,datasecond等,所以在我的JavaScript代碼中我試圖決定哪些變量當中我應該操作 –
然後不要生成那樣的數據。生成一個JSON文字,其中'newid'也被抽象出來。 – delnan