我有一些变量
var a = true;
var b = false;
var c = true;
和一个数组
var array = ['a', 'b', 'c'];
如何评估元素对应的真值?
我知道我可以使用 eval()
,但由于它被认为是有害的,还有其他选择吗?
在某些情况下,我宁愿将“真相”分配为
var truth = {'a': true, 'b': false, 'c': true};
看起来,eval()
没有采用其他选项(例如 eval('a+b', {a: 1, b: 3}) = 4
)
最佳答案
虽然这不能回答您的问题,但它应该可以完成您需要做的事情。
与其创建这些变量,不如将它们设置为本地对象的属性——然后使用它们。
var obj = {
a: true,
b: false,
c: true
};
var array = ['a', 'b', 'c'];
array.forEach(function(val) {
console.log("Value ", val, "is ", obj[val]);
});
由于事物的命名方式,您还可以访问
obj.a = false;
或
obj["b"] = true;
关于javascript - 在没有eval的情况下评估javascript中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39423090/