微信小程序计算器后后续
改的眼睛都要瞎了,总算是知道问题出哪了
最后一段 在等号里面计算输入的数组,这个判断的主要操作是将输入的数据的数组进行数和符号的拆分然后再计算,把数按字符串输入数组,然后将数和符号进行拆分 ,最后通过循环判断进行的计算,卡了两天的主要原因是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);
}
微信小程序计算器后后续的更多相关文章
- 微信小程序计算器模拟后续
今天按着自己的思路又重打了一遍 wxml没什么说的,就是分块起名,显示数字和结果的作为屏幕,数字键盘一行四块 <view class="onTop"> <view ...
- 微信小程序计算器Bug版=-=(笔记)
微信小程序计算器BUG版本 无APPID的测试号登录,先在app.json中更改路径,以及修改头部信息. 首先一个输入框字段用{{screenData}} 功能可以退格,清屏,正负号,正常操作加减乘除 ...
- 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)
1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...
- wn-cli 像React组件开发一样来开发微信小程序
项目地址:wn-cli wn-cli wn-cli 像React组件开发一样来开发微信小程序 名字由来:wn -> weapp native 取第一个字母 Install npm install ...
- 你的产品适不适合做微信小程序?你需要这篇产品逻辑分析
自2017年1月9日张小龙宣布万众瞩目的“微信小程序”正式上线了.以名字看,感觉像是突出了“将你的程序接入微信”的意思. 我们此前分析过微信的功能迭代节奏:一般微信重要的功能规划周期,大约会在在9 ...
- 用微信小程序做H5游戏尝试
微信小程序发布后,公司虽然没有拿到第一批内测资格,但作为微信亲密合作伙伴,一定要第一时间去尝试啦.现在微信小程序刚发布还在测试阶段,可以说是1.0版本,所以框架和结构内容都还不多,相关的文档跟微信AP ...
- 《微信小程序七日谈》- 第七天:不要捡了芝麻丢了西瓜
<微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩: 第五 ...
- 近期热门微信小程序demo源码下载汇总
近期微信小程序demo源码下载汇总,乃小程序学习分析必备素材!点击标题即可下载: 即速应用首发!原创!电商商场Demo 优质微信小程序推荐 -秀人美女图 图片下载.滑动翻页 微信小程序 - 新词 GE ...
- 微信小程序基本目录结构学习
今天我们就以firstdemo为例,介绍一下小程序的基本目录结构.当我们打开一个微信小程序项目后,点击进入“编辑”菜单,我们可以看到有以下5个文件/文件夹):pages文件夹,utils文件夹,全局文 ...
随机推荐
- 网站SEO优化问答精选【转载】
在接触seo的过程中,大家都会碰到很多这样或那样的问题,特别是一些seo新手由于知识有限会经常到很多地方问一些网站优化的问题,做seo时间慢慢变长之后,知识会慢慢地积累,之前的问题也会慢慢的都被解答. ...
- 如何查看.net framework 版本
以windows 2016 standard版本为例 通过注册表查看,找到 .NET Framework 注册表信息所在的位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...
- lambda用法
1.lambda为匿名函数,即不用起函数名2.如果函数使用次数很少并且很简洁,一般可以考虑用lambda函数3.lambda可以简化代码的可读性4.lambda不能使用if for等复杂的语法 示例一 ...
- iptables 分析(三)
原文:http://blog.chinaunix.net/uid-24207747-id-2622902.html find_target查到目标并加载成功,返回一个xtables_target型对象 ...
- SpringMVC Maven项目 java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServle
今天在搭建SpringMVC开发框架时,遇到了一个问题,尽管在maven的POM.xml文件中配置了项目所依赖的jar包,但在启动项目是已然报错如下: 信息: Starting Servlet Eng ...
- bugfree3.0.1-修改“优先级”为中文引起的PHP Error
博主在搭建好bugfree后,修改了系统中“优先级”字段,将原先系统定义的优先级“1.2.3.4”修改为符合博主自己项目要求的优先级“高.中.低”.修改成功后,系统确实将原先提交的BUG优先级从“1. ...
- 关于什么是SpringMVC,和SpringMVC基于xml配置、注解配置、纯注解配置
首先我们先要了解一下,什么是SpringMVC? SpringMVC是Spring框架内置的MVC的实现.SpringMVC就是一个Spring内置的MVC子框架,也就是说SpringMVC的相关包都 ...
- Redis入门到高可用(十四)—— bitmap
一.初步认识 二.API 1.setbit 2.getbit 3.bitcount 4.bitop 5.bitpos 三.位图使用 四. 使用经验
- 解决mysql大小写敏感问题
先在服务中 找到 my.min 文件 在 [mysqld] 下面添加一行: lower_case_table_names = 0 其中 0:区分大小写,1:不区分大小写 设置好后 需要重启服务 然 ...
- 竖倾斜ScrollView
using UnityEngine; using UnityEngine.EventSystems; public class ObliqueScroll : MonoBehaviour,IDragH ...