微信小程序for循环里条件判断
时间:2022-04-23
本文章向大家介绍微信小程序for循环里条件判断,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前文:
今天踩了一下午的坑,但是确实很简单的问题。
我说一下需求:扫描商品的二维码,从而判断,同一个二维码不可多次扫描;
点击扫一扫 会在灰色区域展示 扫描的商品信息,比如商品名称,商品码等,但是我们的需求是一物一码,即使是同一个商品也是不同的商品码。
错误示例:
最开始我的想法是做判断,因为我会在相对应的js文件中定义一个 productList:[ ],数组来存放数据,
Pages({ productList: [用来存放,通过后台接口得到的相关商品的数据信息]
}) 由于我们是一物一码,那唯一的判断条件就是商品码了
-
wzy.post("/wx/open/getProdcutNameByCode", product,
true)
-
.then((res)
=>
{
-
let products={
name: res.data.data,
code:product.code,
-
}
-
let productLength =
this.data.productIist.length;
-
//如果列表没有直接推,如果有循环,如果
-
if
(productLength==0){
-
this.data.productIist.push(products);
-
this.setData({
-
productIist:
this.data.productIist
-
})
-
}else{
-
for
(let i =
0; i < productLength;i++){
-
if
(products.code ==
this.data.productIist[i].code){
-
global.jv.showPop('提示','同一商品不可重复扫描')
-
return
-
}
-
}
-
this.data.productIist.push(products);
-
this.setData({
-
productIist:
this.data.productIist
-
})
-
}
-
}).catch((res)
=>
{
console.log(res)
-
wzy.showPop('提示',
'当前网络繁忙,请重新扫描')
-
})
-
},
原来的思路是:
-
.then((res)
=>
{
-
let products={
name: res.data.data,
code:product.code,
-
}
-
let productLength =
this.data.productIist.length;
-
//如果列表没有直接推,如果有循环,如果
-
if
(productLength==0){
-
this.data.productIist.push(products);
-
this.setData({
-
productIist:
this.data.productIist
-
})
-
}else{
-
// 原来思路:把数组中的每一项code取出来与扫码得到的code进行对比,如果不相等就push到数组中 从而在页面循环,但是发现
-
// 当数组的length>1的情况下,会发生即使你扫码得到的code不与原数组相同但是会重复多次,次数由productIist.length决定
productIist.forEach(item=>{
-
if(item.code !==this.data.productIist.code )
{
-
this.data.productIist.push(products);
-
this.setData({
-
productIist:
this.data.productIist
-
})
-
}
})
-
}).catch((res)
=>
{
console.log(res)
-
wzy.showPop('提示',
'当前网络繁忙,请重新扫描')
-
})
-
},
所以 在上面的正确的示例中 使用for循环 并把判断也写进for循环中 如果数组中的code与扫描的code相等 就会弹出提示框,并且不会执行下面代码,但是当条件不相符的时候,便可以愉快的执行下面的代码了。
- PDF.js专题
- CentOs7.3 编译安装 Nginx 1.9.9
- 基础篇章:关于 React Native 之 RefreshControl 组件的讲解
- CentOs7.3 安装 JDK1.8
- 基础篇章:关于 React Native 之 ListView 组件的讲解
- maven环境快速搭建
- CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务
- CentOs7.3 搭建 Redis-4.0.1 Cluster 集群服务
- CentOs7.3 搭建 Redis-4.0.1 单机服务
- Shodan新手入坑指南
- 我用过的——Spring定时任务的几种用法
- CentOs7.3 搭建 SolrCloud 集群服务
- CentOs7.3 搭建 Solr单机服务
- CentOs7.3 搭建 ZooKeeper-3.4.9 Cluster 集群服务
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法