2
我想創建一個對象是這樣的:替代eval()函數由於微小
var new_obj = {},
array_path = '',
the_value = 3;
array_path = '[\''fruits'\'][\''banana'\'][\''value'\']'; // unknown on runtime
eval('new_obj' + array_path + ' = ' + the_value + ';');
不幸的是縮小後的「new_obj」參數將不new_obj變量相匹配。我找不到另一種方法去做我想做的事情,因爲在運行時我不知道array_path結構。任何想法我可以如何避免eval()函數?
你可以使用常量以及變量作爲數組索引,所以只需刪除eval並使用'new_obj [var1] [var2] [var3] = the_value;'應該工作......什麼是「運行時未知」意思是說,但? – dlatikay
如果您在運行時構建'array_path'字符串,則可以通過數組表示法訪問該對象。無論哪種情況,'eval()'都是多餘的。 –