我现在有一个解决方案,但这不是我认为的最好的。
function parseEval(value){
var result = undefined;
try {
result = eval(value);
} catch (e) { }
return result;
}
因此,如果value
未定义或包含无法解释的值,则函数返回undefined
。
如果包含现有函数名称,则返回函数对象
,如果包含"[1,2,3]"
则返回 int 数组
,如果包含"[{ label: "Choice1", value: "value1" },{ label: "Choice2", value: "value2" }]"
则返回对象数组
我对任何解决方案都持开放态度,因为 eval 有很多缺点。(性能、安全性、灵活性、可维护性)