javascript - 在 Javascript 中,简单的计算器,不起作用
问题描述
我试图通过 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"));
解决方案
你需要做两件事:
- 将输入解析为浮点数
- 映射用户给定的函数名
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?"))
);
推荐阅读
- javascript - 使用 onclick 事件使用页面中的数据填充表格中的单元格
- playframework - 如何使用 UTF-8 以外的其他字符集发出请求?
- python - 为什么我的高斯 np.array 不是对称的?
- android - 是否允许在 Play 商店中为特定游戏创建机器人
- microsoft-graph-api - Microsoft graph:将电子邮件转发到群组而不将其转发给成员和来宾
- android - 是否可以为 Firestore 写入操作(Android)设置超时?
- typescript - 如何从类型映射中推断类型
- python - 如何使用 selenium + python + chrome 的客户端认证
- java - Java - 如何在不暂停 GUI 中的 GIF 动画的情况下暂停代码?
- python - 使用os.walk在python中仅列出所有带有png的子目录