【问题标题】:Using '+' as an actual + operator when passed as string - React [duplicate]当作为字符串传递时使用'+'作为实际的+运算符 - React [重复]
【发布时间】:2018-01-11 10:08:01
【问题描述】:

我正在设置这样的状态属性:state = { sign: '' } 并将其设置为'+''-'

计划是在计算中使用它。例如,假设sign 设置为'+',我将在计算中使用运算符,例如:12 sign 8。但是,当我输出结果时,我得到的是12+8 而不是20

对我哪里出错有什么想法吗?

【问题讨论】:

  • num1 + (+this.state.sign )+ num2
  • 嘿哟。你可以像 if(sign=='+') some + some...
  • const operator = sign === '-' ? -1 : 1; 12 + (operator) * 8.
  • 另请注意,在数学中,符号“+”“-”与二元运算符“+”和“-”具有不同的含义,因此您最好调用您的属性运算符。那就是 state= {operator: ''}

标签: javascript html reactjs


【解决方案1】:
  1. 使用条件
  2. 使用开关

var sign = '+';
console.log("Using conditionals");
console.log(sign==='+' ? 12+8 : 12-8);

//Switch
console.log("Using switch");
switch(sign)
{
    case '+' : console.log(12+8);break;
    case '-' : console.log(12-8);break;
    default : console.log("not valid operation");
}

【讨论】:

    【解决方案2】:

    利用eval函数

    eval(a + this.state.sign + b)
    

    eval() 函数的参数是一个字符串。如果字符串表示表达式,eval() 会计算表达式

    【讨论】:

      【解决方案3】:

      在 javascript 中使用 eval

      参考

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval

       state = { sign: '+' }
      
      console.log(eval(2 + this.state.sign + 6))

      【讨论】:

        【解决方案4】:

        在 javascript 中有 eval() 来评估一个字符串。

        var operation=12+ sign+ 8
        console.log(eval(operation))
        

        【讨论】:

          猜你喜欢
          • 2011-08-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多