【问题标题】:Operators behaving strangely in React JS运算符在 React JS 中的行为异常
【发布时间】:2020-09-29 09:59:34
【问题描述】:

我的 React 应用程序将“/”字符串与“+”混淆了。

  console.log(numbers, signs);

此日志:

数组 [ "6", "2" ] 数组 [ "/" ]

之后,我遍历数组并应用适当的运算符,如下所示:

  for (let e = 1; e < numbers.length; e++) {
    if ((signs[counter] = "+")) {
      newTotal += parseInt(numbers[e]);
      counter += 1;
      console.log(newTotal);
    } else if ((signs[counter] = "-")) {
      newTotal -= parseInt(numbers[e]);
      counter += 1;
      console.log(newTotal);
    } else if ((signs[counter] = "*")) {
      newTotal *= parseInt(numbers[e]);
      counter += 1;
      console.log(newTotal);
    } else if ((signs[counter] = "/")) {
      newTotal = newTotal / parseInt(numbers[e]);
      counter += 1;
      console.log(newTotal);
    }

每个运算符都可以正常工作,除了“/”,它总是像“+”一样。所以上面的代码返回 8 而不是 3。什么给出?

【问题讨论】:

    标签: javascript reactjs operators divide


    【解决方案1】:

    您在 if 语句的顶部将符号 [counter] 分配给 + 。 使用 ===

    【讨论】:

      【解决方案2】:

      为了正常工作,您的代码应如下所示:

      let counter = 0;
      for (let e = 1; e < numbers.length; e++) {
          if ((signs[counter] == "+")) {
            newTotal += parseInt(numbers[e]);
            counter += 1;
            console.log(newTotal);
          } else if ((signs[counter] == "-")) {
            newTotal -= parseInt(numbers[e]);
            counter += 1;
            console.log(newTotal);
          } else if ((signs[counter] == "*")) {
            newTotal *= parseInt(numbers[e]);
            counter += 1;
            console.log(newTotal);
          } else if ((signs[counter] == "/")) {
            newTotal = newTotal / parseInt(numbers[e]);
            counter += 1;
            console.log(newTotal);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-02-07
        • 1970-01-01
        • 2010-09-23
        • 1970-01-01
        相关资源
        最近更新 更多