Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 让JS自动完成计算器应用程序的数学公式_Javascript_Html - Fatal编程技术网

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]