js运算符转换问题?

字符串的运算符号怎么转换成js的表达式

 let obj={
     minRange:'≤', //含量范围最小(%)
     minValue:'0.2', //含量范围最小(%)
     maxRange:'≥',//含量范围最大(%)
     maxValue:'0.5',//含量范围最大(%)
     value:90,//取值大小
     elementValue:'0.3',//检查结果 
     result:''//计算后的结果
  }

 //如何转成js表达式

let {minRange,minValue,maxRange,maxValue,value,elementValue} =obj;
 if(elementValue >= minValue && elementValue <= maxValue){
   obj.result=value
 }
阅读 2.2k
2 个回答

特殊字符替换,然后求和,就以问题中的代码为例吧,将≤替换为<=,将≥替换为>=。
然后使用eval()函数将字符串作为JavaScript代码求值。

图片.png

图片函数解释描述链接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refer...

所以依葫芦画瓢:

let obj = {
  minRange: '&le;', //含量范围最小(%)
  minValue: '0.2', //含量范围最小(%)
  maxRange: '&ge;', //含量范围最大(%)
  maxValue: '0.5', //含量范围最大(%)
  value: 90, //取值大小
  elementValue: '0.3', //检查结果 
  result: '' //计算后的结果
}

// 替换特殊字符为对应的JavaScript运算符
let {minRange, minValue, maxRange, maxValue, value, elementValue} = obj;
minRange = minRange.replace('&le;', '<=');
maxRange = maxRange.replace('&ge;', '>=');

// 使用eval()求值
if(eval(`${elementValue} ${minRange} ${minValue} && ${elementValue} ${maxRange} ${maxValue}`)){
  obj.result = value;
}
function convertOperator(operator) {
    switch (operator) {
        case "&ge;":
            return ">=";
        case "&le;":
            return "<=";
        case "&ne;":
            return "!==";
        case "&and;":
            return "&&";
        case "&or;":
            return "||";
        // 添加其他字符串运算符的替代情况
        default:
            return operator;
    }
}

let obj={
    minRange:convertOperator('&le;'), //含量范围最小(%)
    minValue:'0.2', //含量范围最小(%)
    maxRange:convertOperator('&ge;'),//含量范围最大(%)
    maxValue:'0.5',//含量范围最大(%)
    value:90,//取值大小
    elementValue:'0.3',//检查结果 
    result:''//计算后的结果
 }

let {minRange, minValue, maxRange, maxValue, value, elementValue} = obj;
const expression = `${elementValue}${minRange}${minValue}&&${elementValue}${maxRange}${maxValue}`
console.log(expression);

if(eval(expression)){
    console.log('结果错误')
}else{
    console.log('结果正确');
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏