zoukankan      html  css  js  c++  java
  • 微信小程序计算器后后续

    改的眼睛都要瞎了,总算是知道问题出哪了

    最后一段 在等号里面计算输入的数组,这个判断的主要操作是将输入的数据的数组进行数和符号的拆分然后再计算,把数按字符串输入数组,然后将数和符号进行拆分 ,最后通过循环判断进行的计算,卡了两天的主要原因是optarr数组不能把arr的数组完好的传进去,明明应该是{“7”,“+”,“7”},莫名其妙的变成{“”,“7”,“”,“+”,“”,“7”},刚开始我还在考虑为什么空字符也能显示且不接受字符串连接,后来才发现是条件的范围控制错了

    错的时候是这样  if(isNaN(arr[i]== false)|| arr[i]==this.data.dot){(arr[i]== false)|| arr[i]==this.data.dot){
     原来应该是这样 if(isNaN(arr[i])== false|| arr[i]==this.data.dot){(arr[i])== false|| arr[i]==this.data.dot){
    改完之后就顺利运行了,另外isNaN是判断是否为数字的,而不是是否为非法字符的,记错了,还有alert在微信小程序开发中用不了,记录一下。
    else if(id==this.data.equal){//=
          var data=this.data.screenData;
          if(data=="0"){
            return;
          }
          var lastWord=data.charAt(data.length);//判断一下末尾字符是否合法
          if(isNaN(lastWord)){
            return;
          }
          
          var arr=this.data.arr;
          var num ="";
          var optarr=[];
          //console.log(arr); //  以上没问题
          for(var i in arr){//判断小数点 连串
            if(isNaN(arr[i])== false|| arr[i]==this.data.dot){
              num = arr[i] + num;
            }else{ 
              optarr.push(num);
              optarr.push(arr[i]);
              num="";
    
            }
          }
          console.log(optarr);
          optarr.push(Number(num));
          var result = Number(optarr[0]) * 1.0;
          console.log(result);
         for(var i=1;i<optarr.length;i++){//跳格对数进行+-*/
           if(isNaN(optarr[i])){
            if(optarr[1]==this.data.add){
              result += Number(optarr[i+1]);
            } else if (optarr[1] == this.data.minus) {
              result -= Number(optarr[i + 1]);
            } else if (optarr[1] == this.data.multiply) {
              result *= Number(optarr[i + 1]);
            }
            else if (optarr[1] == this.data.divided) {
              result /= Number(optarr[i + 1]);
            }
           }
           
         }
         console.log(result);
         this.setData({"screenData":result+""});
         this.data.arr.length=0;
         this.data.arr.push(result);
         
         
    
    
        }
  • 相关阅读:
    js库链接
    小程序实现textarea行数自动增加
    小程序中公告消息自动向左滚动(关闭三次之后不再提示公告信息)
    jQuery实现点击div外的区域,来隐藏指定节点
    Unity AssetBundle爬坑手记
    换装demo随手记
    Untiy PoolManager随手记
    unity常用插件
    Untiy一些方法前特殊标签记录
    Unity网格合并_材质合并
  • 原文地址:https://www.cnblogs.com/dadaochangcun/p/9806580.html
Copyright © 2011-2022 走看看