如何在JavaScript中将eval()函数与数据一起使用?

时间:2019-09-29 18:30:04

标签: javascript

我有一个类似下面的查询。

let query= "VALIDATION_TYPE__INT32_value==1" 
let data = {};
data["VALIDATION_TYPE__INT32_value"] = 1;
var results = eval(query); 
Uncaught ReferenceError:` VALIDATION_TYPE__INT32_value is not defined

================================================ =======================

我将如何发送数据eval()函数?

2 个答案:

答案 0 :(得分:1)

在第三行上,您正在为对象data分配属性值。

因此,您的第一行应该比较该属性的值,而不是全局变量:

let query= "data.VALIDATION_TYPE__INT32_value==1" 

此更改意味着result现在等于true


或者更改第三行以设置全局变量,而不是data的属性:

VALIDATION_TYPE__INT32_value = 1;

答案 1 :(得分:1)

这里是误会:

  

let query =“ VALIDATION_TYPE__INT32_value == 1”;

未在全局范围内定义简单。我们定义了介绍对象数据。访问也必须存在于数据中。

  

data [“ VALIDATION_TYPE__INT32_value”] = 1;

工作示例:

let data = {};

let query= "data['VALIDATION_TYPE__INT32_value'] == 1";

data["VALIDATION_TYPE__INT32_value"] = 1;

if (eval(query) ) {alert("correct")} else {alert("its not 1")};