我正在构建一个简单的计算器作为作业。该函数使用两个数字(number1,number2)和一个运算符(+,-,*,/)作为参数。

但是,有几种情况:


如果缺少操作员->返回“提供了错误的数据”
如果不是,则正常计算
如果数字2丢失->假设+&-计算为数字“ 0”,而*&/计算为“ 1”


编辑:场景3应该只解释传入的2个参数(1个数字和1个运算符)。我知道这不是调用函数的正确方法,但这是我尝试解决的任务的一部分。

这是我尝试过的

function calc (number1, number2, operator) {
    if (operator == undefined) {
        return "wrong data provided"
    } else {
        if (operator == "+") {
            return number1+number2
        } else if (operator == "-") {
            return number1-number2
        } else if (operator == "*") {
            return number1*number2
        } else if (operator == "/") {
            return number1/number2
        }
    }

    if (number2 == undefined) {
        if (operator == "+") {
                number2=0;
            return number1+number2
        } else if (operator == "-") {
                number2=0;
            return number1-number2
        } else if (operator == "*") {
            number2=1;
            return number1*number2
        } else if (operator == "/") {
            number2=1;
            return number1/number2
        }
    }  else {
        if (operator == "+") {
            return number1+number2
        } else if (operator == "-") {
            return number1-number2
        } else if (operator == "*") {
            return number1*number2
        } else if (operator == "/") {
            return number1/number2
        }
    }
}


calc(50,“ +”)导致“提供了错误的数据。为什么?

最佳答案

您可以执行以下操作:



function calc(par1, par2, par3) {
  var number1 = par1;
  var operator;
  var number2;
  if (typeof par2 === 'string') {
    operator = par2;
  } else {
    number2 = par2;
    operator = par3;
  }
  if (typeof operator === "undefined") {
    return "wrong data provided"
  } else {
    if (operator == "+") {
      return number1 + (number2 || 0);
    } else if (operator == "-") {
      return number1 - (number2 || 0);
    } else if (operator == "*") {
      return number1 * (typeof number2 === 'undefined' ? 1 : 0);
    } else if (operator == "/") {
      return number1 / (typeof number2 === 'undefined' ? 1 : 0);
    }
  }
}

console.log(calc(50, '+'));
console.log(calc(50, '*'));
console.log(calc(50, 20, '+'));
console.log(calc(50, undefined, '*'));
console.log(calc(50, 10));





在这里,当(number2 || 0)number20时,我使用-进行+number2操作的undefined0进行计算。
 (typeof number2 === 'undefined' ? 1 : 0)number2用于在1*时对/number2操作使用undefined或进行计算。

关于javascript - 基于传入参数的计算器功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57772624/

10-11 22:10
查看更多