分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

js简易计算器底层运算逻辑

发布时间:2023-09-06 01:07责任编辑:蔡小小关键词:js
var Calc={getData:function(arr){var tempStr = "";var data = [];//格式化数据for(var i = 0; i < arr.length; i++){if(Number(arr[i])|| Number(arr[i]) == 0){tempStr += arr[i]}else{if(tempStr != ‘‘){data.push(tempStr);}data.push(arr[i]);tempStr = ‘‘;}}if(tempStr != ‘‘){data.push(tempStr);tempStr = ‘‘;}//去掉0开头for(var i = 0; i < data.length; i++){if(Number(data[i])|| Number(data[i]) == 0){data[i] = Number(data[i])}}if(data[data.length-1] == "="){var result = Calc.calute(data);data.push(result);}Calc.show(data);},show:function(arr){console.log(arr.join(""));},calute:function(arr){var newArr = JSON.parse(JSON.stringify(arr));//根号while(newArr.indexOf(‘sqrt‘) != -1){var index = newArr.indexOf(‘sqrt‘);var num1 = newArr[index+1];var result = Math.sqrt(num1);newArr.splice(index,2,result);}//计算除法while(newArr.indexOf(‘/‘) != -1){var index = newArr.indexOf(‘/‘);var num1 = newArr[index-1];var num2 = newArr[index+1];var result = num1/num2;newArr.splice(index-1,3,result);}//乘法while(newArr.indexOf(‘*‘) != -1){var index = newArr.indexOf(‘*‘);var num1 = newArr[index-1];var num2 = newArr[index+1];var result = num1*num2;newArr.splice(index-1,3,result);}//减法while(newArr.indexOf(‘-‘) != -1){var index = newArr.indexOf(‘-‘);var num1 = newArr[index-1];var num2 = newArr[index+1];var result = num1-num2;newArr.splice(index-1,3,result);}//加法while(newArr.indexOf(‘+‘) != -1){var index = newArr.indexOf(‘+‘);var num1 = newArr[index-1];var num2 = newArr[index+1];var result = num1+num2;newArr.splice(index-1,3,result);}try{if(newArr.length > 2){throw new Error("计算错误");}}catch(e){console.log(e);console.log(newArr);return "表达式错误";}return newArr[0];}}var arr = ["0","2","0","+","3","+", "sqrt","4","-","8","="];Calc.getData(arr);//type: 1:空, 2:数字, 3:运算符, 4:等于function vaild(oldType,type){var flag = false;//type == 2时if((oldType == 1 && type == 2)||(oldType == 2 && type == 2) || (oldType == 3 && type == 2)){return true;}//type == 3if(oldType == 2 && type == 3){flag = true;}//type == 4if(oldType == 2 && type == 4){flag = true;}return flag;}

  

js简易计算器底层运算逻辑

原文地址:http://www.cnblogs.com/muamaker/p/7449820.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved