运算符在 React JS 中表现异常

Operators behaving strangely in React JS

我的 React 应用混淆了“/”字符串和“+”。

  console.log(numbers, signs);

此记录:

Array [ "6", "2" ] Array [ "/" ]

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

  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);
    }

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

您正在将 signs[counter] 分配给 + 在您的 if 语句之上。 使用 ===

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

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);
    }
}