如果我有这样的查询:
row.Average < 99 && row.Department === \"lfs\" && row.Fail === 1
提供为字符串...如何将其转换为在if语句中使用的可执行代码
例如:
if (row.Average < 99 && row.Department === \"lfs\" && row.Fail === 1){ /*doSomething*/ }
使用Typescript ..我希望算法可以..如果没有其他方法
我尝试使用eval(),但是我被禁止使用eval
,还尝试做:
const Query = "row.Average < 99 && row.Department === \"lfs\" && row.Fail === 1";
const func = new Function("return " + Query + ";");
if (func()) {
// code
}
和代码只是在..行退出并退出
答案 0 :(得分:1)
我相信您可以使用eval
函数来评估TypeScript中的JavaScript表达式:
const query = "row.Average < 99 && row.Department === \"lfs\" && row.Fail === 1";
const row = {Average: 98, Department: "lfs", Fail: 1}
console.log('query evaluates to ', eval(query));
if (eval(query)) {
console.log('It was true')
} else {
console.log('It was false')
}