Javascript 让JS自动完成计算器应用程序的数学公式
我遇到的问题是,数学没有按预期进行。如果Javascript 让JS自动完成计算器应用程序的数学公式,javascript,html,Javascript,Html,我遇到的问题是,数学没有按预期进行。如果fullAmount变量长度等于3,我希望计算器自动计算金额,然后清除num变量和fullAmount变量,但保留已计算的当前数字。因此,如果你将9*1放入计算器,我希望它保留num=[]和fullAmount=[9],但它当前将fullAmount保留为[9,*,1],然后添加到它上面 $(文档).ready(函数(){ var fullAmount=[] var num=[] var func=null 函数求值(数组){ if(数组[1]=“+”)
fullAmount
变量长度等于3,我希望计算器自动计算金额,然后清除num
变量和fullAmount
变量,但保留已计算的当前数字。因此,如果你将9*1
放入计算器,我希望它保留num=[]
和fullAmount=[9]
,但它当前将fullAmount
保留为[9,*,1]
,然后添加到它上面
$(文档).ready(函数(){
var fullAmount=[]
var num=[]
var func=null
函数求值(数组){
if(数组[1]=“+”){
变量完成=数组[0]+数组[2]
数组=[完成]
fullAmount.push(函数[0])
控制台日志(完整)
}else if(数组[1]=“-”){
变量完成=数组[0]-数组[2]
数组=[完成]
fullAmount.push(函数[0])
控制台日志(完整)
}else if(数组[1]=“X”){
var complete=数组[0]*数组[2]
数组=[完成]
fullAmount.push(函数[0])
控制台日志(完整)
}else if(数组[1]=“÷”){
var complete=array[0]/array[2]
数组=[完成]
fullAmount.push(函数[0])
控制台日志(完整)
}否则{
console.log(“错误”)
}
$(“#res”).val(完整);
}
$('.num')。单击(函数(){
num.push($(this).text())
console.log(num)
console.log(完整金额)
$(“#res”).val(num.join(“”));
});
$('.action')。单击(函数(){
func=$(this.text();
num=num.join(“”)
fullAmount.push(parseInt(num))
如果(fullAmount.length>=3){
评估(全额)
}否则{
fullAmount.push(函数[0])
console.log(func)
}
美元(全额);
func=null
num=[]
});
$('#equals')。单击(函数(){
如果(全额[1]=“+”){
fullAmount.push(parseInt(num))
var complete=全额[0]+全额[2]
全额=[完成]
控制台日志(完整)
}否则如果(全额[1]=“-”){
fullAmount.push(parseInt(num))
var complete=fullAmount[0]-fullAmount[2]
全额=[完成]
控制台日志(完整)
}否则如果(全额[1]=“X”){
fullAmount.push(parseInt(num))
var complete=fullAmount[0]*fullAmount[2]
全额=[完成]
控制台日志(完整)
}否则如果(全额[1]=“÷”){
fullAmount.push(parseInt(num))
var complete=fullAmount[0]/fullAmount[2]
全额=[完成]
控制台日志(完整)
}否则{
console.log(“错误”)
}
$(“#res”).val(完整);
});
$(“#清除”)。单击(函数(){
num=[]
全额=[]
func=null
$(“#res”).val(“”)
console.log(num)
console.log(完整金额)
console.log(func)
});
});代码>
自动控制
+/-
÷
7.
8.
9
X
4.
5.
6.
-
1.
2.
3.
+
0
=
我对您的计算器代码做了一些更改
- 每次操作后,数组
num
和fullAmount
都会重新初始化,以便用于新的计算
- 要获取上一个操作的值,将变量
complete
声明为全局变量。让我们假设用户输入了2
+
3
=
+
5
。结果应该是10。通过声明变量complete global
,我可以在之后对其进行一些检查。请参见下面的代码段:
$(文档).ready(函数(){
var fullAmount=[]
var num=[]
var func=null
var complete=null
函数求值(数组){
if(数组[1]=“+”){
变量完成=数组[0]+数组[2]
数组=[完成]
fullAmount.push(函数[0])
}else if(数组[1]=“-”){
变量完成=数组[0]-数组[2]
数组=[完成]
fullAmount.push(函数[0])
}else if(数组[1]=“X”){
var complete=数组[0]*数组[2]
数组=[完成]
fullAmount.push(函数[0])
}else if(数组[1]=“÷”){
var complete=array[0]/array[2]
数组=[完成]
fullAmount.push(函数[0])
}否则{
console.log(“错误”)
}
$(“#res”).val(完整);
}
$('.num')。单击(函数(){
num.push($(this).text())
$(“#res”).val(num.join(“”));
});
$('.action')。单击(函数(){
func=$(this.text();
num=num.join(“”)
if(parseInt(num)){
fullAmount.push(parseInt(num))
}
//如果运算符前面没有值,计算器将使用前面的值
else if(完整的&!完整的金额[0]){
全额。推送(完成);
}
如果(fullAmount.length>=3){
评估(全额)
}否则{
fullAmount.push(函数[0])
}
美元(全额);
func=null
num=[]
});
$('#equals')。单击(函数(){
如果(全额[1]=“+”){
fullAmount.push(parseInt(num))
完成=全额[0]+全额[2]
全额=[]
num=[]
}否则如果(全额[1]=“-”){
fullAmount.push(parseInt(num))
完成=全额[0]-全额[2]
全额=[]
num=[]
}否则如果(全额[1]=“X”){
fullAmount.push(parseInt(num))
完整=完整金额[0]