在 Javascript 中,简单的计算器,不起作用

AJM*_*EEM 1 javascript prompt function

我试图通过 prompt() 和动作名称获取数字。但结果并不如预期

我是编程新手.. 代码:

function add(n1, n2){   return n1 + n2;}

function sub(n1, n2){   return n1 - n2;}

function mult(n1, n2){  return n1 * n2;}

function div(n1, n2){   return n1/n2;}


function calculator(n1, n2, action){

    alert(action(n1, n2));
}

calculator(prompt("first no,"), prompt("second No"), prompt("calc"));
Run Code Online (Sandbox Code Playgroud)

Sub*_*ari 6

你需要做的两件事:

  1. 将输入解析为浮点数
  2. 映射用户给出的函数名

function add(n1, n2) { return n1 + n2; }
function sub(n1, n2) { return n1 - n2; }
function mult(n1, n2) { return n1 * n2; }
function div(n1, n2) { return n1 / n2; }

function calculator(n1, n2, action) {
  alert(action(n1, n2));
}

function findOperation(name) {
  switch (name) {
    case "sub":
      return sub;
    case "mult":
      return mult;
    case "div":
      return div;
    case "add":
    default:
      return add;
  }
}

calculator(
  parseFloat(prompt("first no,")),
  parseFloat(prompt("second No")),
  findOperation(prompt("Operation Name?"))
);
Run Code Online (Sandbox Code Playgroud)