【发布时间】:2019-09-19 13:09:43
【问题描述】:
所以如果为真,我想连接两个数字。例如,如果用户单击按钮编号“2”和按钮编号“3”,则应将其存储在堆栈中作为 ["23"] 而不是 ["2", "3"]。无论是 23 还是只有 2,当您点击一个运算符(“+”、“-”、“*”、“/”、“=”)时,您应该点击第二个数字。它用于 Javascript 中的计算器。
示例: 用户单击 23、+、7,然后单击 =。那应该在堆栈中存储为 ["23", "+", "7", "="],希望你明白这一点。
更新
var stack = new Array();
for (let i = 0; i < length; i++)
{
buttons[i].addEventListener("click", handle);
}
var prevop = '';
function handle(event)
{
const value = event.target.value;
var myFirstInput =+ value;
我被困在这里了。
if(prevop == '+' || prevop == '-' || prevop == '*' ||prevop == '/')
{
var mySecondInput =+ value;
var input = "" + myFirstInput + myFirstInput;
stack.push(input);
}
if (prevop == '=') {
document.getElementById("textfield").value = "";
}
prevop = value;
switch(value)
{
case "+":
console.log("+ was clicked");
document.getElementById("textfield").value += value;
break;
case "-":
console.log("- was clicked");
document.getElementById("textfield").value += value;
break;
case "*":
console.log("* was clicked");
document.getElementById("textfield").value += value;
break;
case "/":
console.log("/ was clicked");
document.getElementById("textfield").value += value;
break;
case "=":
var tmp = eval(document.getElementById("textfield").value);
document.getElementById("textfield").value += value + tmp;
break;
default:
console.log("%s was clicked", value);
document.getElementById("textfield").value += value;
}
}
【问题讨论】:
-
这里放一些代码供我们调整...
-
你的代码在哪里,你在什么时候卡住了?
-
@MKougiouris 发布了我的代码
-
@Stuart 发布了我的代码
-
您是否总是只有 2 个数字(例如 55 + 22、3 + 4 等)?或者你会在用户推送
=时进行更复杂的计算,比如 55 + 22 * 3 吗?
标签: javascript arrays stack calculator