微信小程序计算器后后续
改的眼睛都要瞎了,总算是知道问题出哪了
最后一段 在等号里面计算输入的数组,这个判断的主要操作是将输入的数据的数组进行数和符号的拆分然后再计算,把数按字符串输入数组,然后将数和符号进行拆分 ,最后通过循环判断进行的计算,卡了两天的主要原因是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文件夹,全局文 ...
随机推荐
- allegro画元件封装
LP Wizard 10.5 根据标准,输入datasheet的尺寸,可以计算出推荐的焊盘和封装. 封装必须画的层: 1.引脚 2.pakage-> 2.1.assembly_top,add线( ...
- mysql批量插入
有多种方式 其中效率高 要求低的方式 是 把sql拼接出来 后一次性commit: eg: public int insertBatch(List<PeccDetailModel> lis ...
- H5 C3
为什么学习HTML5 a.因为语义化标签的出现网页结构更加清晰 b.因为多媒体的出现,让网页播放音频和视频没有了依赖 c.因为CSS3的出现,让页面变得更加炫酷和多彩 d.因为新的API的出现,使的开 ...
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...
- 快速构建一个使用axios的vue应用程序(转)
英文原文:https://www.sitepoint.com/fetching-data-third-party-api-vue-axios/ 译文:https://segmentfault.com/ ...
- 更新node的版本,node没有安装到c盘,安装到了D盘
百度的很久,只有这一个实用,记录一下 https://www.cnblogs.com/xinjie-just/p/7061619.html
- 16.4-uC/OS-III同步 (任务信号量)
信号量和消息队列均是单独的内核对象,是独立于任务存在的. 任务信号量 仅发布给一个特定任务 .任务消息队列 可以发布给多个任务. 任务信号量伴随任务存在,只要创建了任务,其任务信号量就是该任务的一个数 ...
- ORACLE结构体系篇之表空间详解.md
表空间详解一.系统表空间SYSTEM 表空间是Oracle 数据库最重要的一个表空间,存放了一些DDL 语言产生的信息以及PL/SQL 包.视图.函数.过程等,称之为数据字典,因此该表空间也具有其特殊 ...
- Select input 两个元素的宽度高度跟设定值不一致的问题
在做登录框的时候,需要一个select 元素作为账号输入,一个input作为密码输入框.在css 文件中,将这两个元素的position 设置为relative ,并且width 设置为100%.刷新 ...
- elasticsearch 安装 windows linux macOS
导读 在上一章节我们介绍Elasticsearch基本概念,今天我们继续进行本章内容,Elasticsearch在各种环境下安装,下面将逐一讲解在各种操作系统或不同安装在不同环境中注意事项. 安装 E ...